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) {
|
std::vector<u8> File::readBytes(size_t numBytes) {
|
||||||
if (!isValid()) return {};
|
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);
|
auto bytesRead = fread(bytes.data(), 1, bytes.size(), this->m_file);
|
||||||
|
|
||||||
bytes.resize(bytesRead);
|
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())) {
|
if (ImGui::BeginMenu("hex.builtin.view.hex_editor.menu.file.open_recent"_lang, !s_recentFilePaths.empty())) {
|
||||||
for (auto &path : s_recentFilePaths) {
|
// Copy to avoid chaning list while iteration
|
||||||
if (ImGui::MenuItem(fs::path(path).filename().string().c_str())) {
|
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);
|
EventManager::post<RequestOpenFile>(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user