summaryrefslogtreecommitdiff
path: root/plugins/rtti
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-07-07 22:25:22 -0700
committerMark Rowe <mark@vector35.com>2025-07-08 23:26:48 -0700
commit3228382c8f96a162d34dd20ce6f7ba0f235c179a (patch)
tree990e0cf41e0dd61cf872a44186b56e37c7b5132e /plugins/rtti
parenta3af1917724a6b652e72927a0fe8a550cc976a40 (diff)
[RTTI] Fix leak of BackgroundTask
Diffstat (limited to 'plugins/rtti')
-rw-r--r--plugins/rtti/itanium.cpp4
-rw-r--r--plugins/rtti/microsoft.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/plugins/rtti/itanium.cpp b/plugins/rtti/itanium.cpp
index c2f1089b..ad6d6e6d 100644
--- a/plugins/rtti/itanium.cpp
+++ b/plugins/rtti/itanium.cpp
@@ -731,7 +731,7 @@ ItaniumRTTIProcessor::ItaniumRTTIProcessor(const Ref<BinaryView> &view, bool use
void ItaniumRTTIProcessor::ProcessRTTI()
{
- auto bgTask = new BackgroundTask("Scanning for Itanium RTTI...", true);
+ Ref<BackgroundTask> bgTask = new BackgroundTask("Scanning for Itanium RTTI...", true);
auto start_time = std::chrono::high_resolution_clock::now();
auto addrSize = m_view->GetAddressSize();
uint64_t maxTypeInfoSize = TypeInfoSize(m_view);
@@ -820,7 +820,7 @@ void ItaniumRTTIProcessor::ProcessRTTI()
void ItaniumRTTIProcessor::ProcessVFT()
{
- auto bgTask = new BackgroundTask("Scanning for Itanium VFTs...", true);
+ Ref<BackgroundTask> bgTask = new BackgroundTask("Scanning for Itanium VFTs...", true);
BinaryReader optReader = BinaryReader(m_view);
std::map<uint64_t, std::set<uint64_t>> vftMap = {};
std::map<uint64_t, std::optional<VirtualFunctionTableInfo>> vftFinishedMap = {};
diff --git a/plugins/rtti/microsoft.cpp b/plugins/rtti/microsoft.cpp
index de91b16a..8c0d65e7 100644
--- a/plugins/rtti/microsoft.cpp
+++ b/plugins/rtti/microsoft.cpp
@@ -639,7 +639,7 @@ MicrosoftRTTIProcessor::MicrosoftRTTIProcessor(const Ref<BinaryView> &view, bool
void MicrosoftRTTIProcessor::ProcessRTTI()
{
- auto bgTask = new BackgroundTask("Scanning for Microsoft RTTI...", true);
+ Ref<BackgroundTask> bgTask = new BackgroundTask("Scanning for Microsoft RTTI...", true);
auto start_time = std::chrono::high_resolution_clock::now();
uint64_t startAddr = m_view->GetOriginalImageBase();
uint64_t endAddr = m_view->GetEnd();
@@ -714,7 +714,7 @@ void MicrosoftRTTIProcessor::ProcessRTTI()
void MicrosoftRTTIProcessor::ProcessVFT()
{
- auto bgTask = new BackgroundTask("Scanning for Microsoft VFT...", true);
+ Ref<BackgroundTask> bgTask = new BackgroundTask("Scanning for Microsoft VFT...", true);
std::map<uint64_t, uint64_t> vftMap = {};
std::unordered_set<uint64_t> vftFinished = {};
auto start_time = std::chrono::high_resolution_clock::now();