fix: don't change list while iteration (#434)
Co-authored-by: Dmitry Polshakov <dmitry.polshakov@dsr-corporation.com>
This commit is contained in:
parent
585058b500
commit
63455ce2be
@ -56,7 +56,8 @@ namespace hex {
|
||||
std::vector<u8> File::readBytes(size_t numBytes) {
|
||||
if (!isValid()) return {};
|
||||
|
||||
std::vector<u8> bytes(numBytes ?: getSize());
|
||||
auto size = numBytes ?: getSize();
|
||||
std::vector<u8> bytes(size);
|
||||
auto bytesRead = fread(bytes.data(), 1, bytes.size(), this->m_file);
|
||||
|
||||
bytes.resize(bytesRead);
|
||||
|
@ -415,8 +415,11 @@ namespace hex::plugin::builtin {
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("hex.builtin.view.hex_editor.menu.file.open_recent"_lang, !s_recentFilePaths.empty())) {
|
||||
for (auto &path : s_recentFilePaths) {
|
||||
if (ImGui::MenuItem(fs::path(path).filename().string().c_str())) {
|
||||
// Copy to avoid chaning list while iteration
|
||||
std::list<fs::path> recentFilePaths = s_recentFilePaths;
|
||||
for (auto &path : recentFilePaths) {
|
||||
auto filename = fs::path(path).filename().string();
|
||||
if (ImGui::MenuItem(filename.c_str())) {
|
||||
EventManager::post<RequestOpenFile>(path);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user