result r = E_SUCCESS;\r
\r
const int _ISO_639_1_CODE_LENGTH = 5;\r
- char* pLanguage = new(std::nothrow) char[_ISO_639_1_CODE_LENGTH + 1];\r
+ std::unique_ptr<char[]> pLanguage(new(std::nothrow) char[_ISO_639_1_CODE_LENGTH + 1]);\r
SysTryReturn(NID_UI_IME, pLanguage, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");\r
- memset(pLanguage, '\0', sizeof(pLanguage));\r
+ memset(pLanguage.get(), '\0', sizeof(pLanguage.get()));\r
\r
const int _LANGUAGE_CODE_LENGTH = 2;\r
const int _COUNTRY_CODE_LENGTH = 2;\r
r = GetLastResult();\r
SysTryReturn(NID_UI_IME, pCountryCode, null, r, "[%s] Propagating.", GetErrorMessage(r)); \r
\r
- strncpy(pLanguage, pLanguageCode.get(), _LANGUAGE_CODE_LENGTH);\r
- strcat(pLanguage, "_");\r
- strncpy(pLanguage, pCountryCode.get(), _COUNTRY_CODE_LENGTH);\r
+ strncpy(pLanguage.get(), pLanguageCode.get(), _LANGUAGE_CODE_LENGTH);\r
+ strcat(pLanguage.get(), "_");\r
+ strncpy(pLanguage.get(), pCountryCode.get(), _COUNTRY_CODE_LENGTH);\r
\r
- return pLanguage;\r
+ return pLanguage.release();\r
}\r
\r
void\r