From 88e767aaaf5ce96f504ea3f5c804b40f9e0e3056 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Fri, 31 Mar 2023 19:56:20 +0200 Subject: [PATCH] fix: Crash when loading big encoding files --- plugins/builtin/include/ui/hex_editor.hpp | 7 ++++++- plugins/builtin/source/content/views/view_hex_editor.cpp | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/builtin/include/ui/hex_editor.hpp b/plugins/builtin/include/ui/hex_editor.hpp index 6fd4cef39..8761b75ed 100644 --- a/plugins/builtin/include/ui/hex_editor.hpp +++ b/plugins/builtin/include/ui/hex_editor.hpp @@ -150,7 +150,12 @@ namespace hex::plugin::builtin::ui { return this->m_currCustomEncoding; } - void setCustomEncoding(EncodingFile encoding) { + void setCustomEncoding(const EncodingFile &encoding) { + this->m_currCustomEncoding = encoding; + this->m_encodingLineStartAddresses.clear(); + } + + void setCustomEncoding(EncodingFile &&encoding) { this->m_currCustomEncoding = std::move(encoding); this->m_encodingLineStartAddresses.clear(); } diff --git a/plugins/builtin/source/content/views/view_hex_editor.cpp b/plugins/builtin/source/content/views/view_hex_editor.cpp index 4769250ee..2c2eec225 100644 --- a/plugins/builtin/source/content/views/view_hex_editor.cpp +++ b/plugins/builtin/source/content/views/view_hex_editor.cpp @@ -1016,8 +1016,12 @@ namespace hex::plugin::builtin { View::showFileChooserPopup(paths, { {"Thingy Table File", "tbl"} }, false, [this](const auto &path) { TaskManager::createTask("Loading encoding file", 0, [this, path](auto&) { - this->m_hexEditor.setCustomEncoding(EncodingFile(EncodingFile::Type::Thingy, path)); + auto encoding = EncodingFile(EncodingFile::Type::Thingy, path); ImHexApi::Provider::markDirty(); + + TaskManager::doLater([this, encoding = std::move(encoding)] mutable { + this->m_hexEditor.setCustomEncoding(std::move(encoding)); + }); }); }); },