diff --git a/src/common/Platform.cpp b/src/common/Platform.cpp index 85734909b..588b893d6 100644 --- a/src/common/Platform.cpp +++ b/src/common/Platform.cpp @@ -532,17 +532,15 @@ int main(int argc, char *argv[]); int WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { int argc; - wchar_t **wargv = CommandLineToArgvW(GetCommandLineW(), &argc); std::vector argv; + std::vector argp; + wchar_t **wargv = CommandLineToArgvW(GetCommandLineW(), &argc); for (auto i = 0; i < argc; ++i) { argv.push_back(Platform::WinNarrow(std::wstring(wargv[i]))); + argp.push_back(&argv.back()[0]); } - std::vector argp; - for (auto &arg : argv) - { - argp.push_back(&arg[0]); - } + LocalFree(wargv); return main(argc, &argp[0]); } #endif