@@ -471,7 +471,7 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() { |
471 | 471 | DWORD size_2 = 0; |
472 | 472 | // First call to get the size of module array needed |
473 | 473 | if (EnumProcessModules(process_handle, nullptr, 0, &size_1)) { |
474 | | - MallocedBuffer<HMODULE> modules(size_1); |
| 474 | + MallocedBuffer<HMODULE> modules(size_1 / sizeof(HMODULE)); |
475 | 475 |
|
476 | 476 | // Second call to populate the module array |
477 | 477 | if (EnumProcessModules(process_handle, modules.data, size_1, &size_2)) { |
@@ -480,16 +480,15 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() { |
480 | 480 | i++) { |
481 | 481 | WCHAR module_name[MAX_PATH]; |
482 | 482 | // Obtain and report the full pathname for each module |
483 | | - if (GetModuleFileNameExW(process_handle, |
484 | | - modules.data[i], |
485 | | - module_name, |
486 | | - arraysize(module_name) / sizeof(WCHAR))) { |
| 483 | + if (GetModuleFileNameW( |
| 484 | + modules.data[i], module_name, arraysize(module_name))) { |
487 | 485 | DWORD size = WideCharToMultiByte( |
488 | 486 | CP_UTF8, 0, module_name, -1, nullptr, 0, nullptr, nullptr); |
489 | 487 | char* str = new char[size]; |
490 | 488 | WideCharToMultiByte( |
491 | 489 | CP_UTF8, 0, module_name, -1, str, size, nullptr, nullptr); |
492 | 490 | list.emplace_back(str); |
| 491 | + delete str; |
493 | 492 | } |
494 | 493 | } |
495 | 494 | } |
|