diff options
| author | Mark Rowe <mark@vector35.com> | 2026-05-11 18:49:26 -0700 |
|---|---|---|
| committer | Mark Rowe <mark@vector35.com> | 2026-05-19 10:36:46 -0700 |
| commit | fd40266f767e51e649fb48376e25f47a60d79765 (patch) | |
| tree | db351a36617200d4ad659bb3c1aa921b8d08f204 /firmwareninja.cpp | |
| parent | 297a98bff289ecde90d808f6538c2c5edf804af6 (diff) | |
Fix incorrect reference counting in C++ API
Diffstat (limited to 'firmwareninja.cpp')
| -rw-r--r-- | firmwareninja.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/firmwareninja.cpp b/firmwareninja.cpp index 501ef2c5..d39923b5 100644 --- a/firmwareninja.cpp +++ b/firmwareninja.cpp @@ -63,7 +63,7 @@ FirmwareNinjaRelationship::FirmwareNinjaRelationship(Ref<BinaryView> view, BNFir if (handle) m_object = handle; else - m_object = BNNewFirmwareNinjaRelationshipReference(BNCreateFirmwareNinjaRelationship(view->GetObject())); + m_object = BNCreateFirmwareNinjaRelationship(view->GetObject()); } @@ -204,7 +204,7 @@ Ref<ProjectFile> FirmwareNinjaRelationship::GetSecondaryExternalProjectFile() co if (!bnProjectFile) return nullptr; - return new ProjectFile(BNNewProjectFileReference(bnProjectFile)); + return new ProjectFile(bnProjectFile); } @@ -305,12 +305,6 @@ FirmwareNinjaReferenceNode::FirmwareNinjaReferenceNode(BNFirmwareNinjaReferenceN } -FirmwareNinjaReferenceNode::~FirmwareNinjaReferenceNode() -{ - BNFreeFirmwareNinjaReferenceNode(m_object); -} - - bool FirmwareNinjaReferenceNode::IsFunction() { return BNFirmwareNinjaReferenceNodeIsFunction(m_object); @@ -366,6 +360,7 @@ std::vector<Ref<FirmwareNinjaReferenceNode>> FirmwareNinjaReferenceNode::GetChil BNNewFirmwareNinjaReferenceNodeReference(bnChildren[i]))); } + BNFreeFirmwareNinjaReferenceNodes(bnChildren, count); return result; } @@ -623,7 +618,7 @@ Ref<FirmwareNinjaReferenceNode> FirmwareNinja::GetReferenceTree( if (!bnReferenceTree) return nullptr; - return new FirmwareNinjaReferenceNode(BNNewFirmwareNinjaReferenceNodeReference(bnReferenceTree)); + return new FirmwareNinjaReferenceNode(bnReferenceTree); } @@ -641,7 +636,7 @@ Ref<FirmwareNinjaReferenceNode> FirmwareNinja::GetReferenceTree( if (!bnReferenceTree) return nullptr; - return new FirmwareNinjaReferenceNode(BNNewFirmwareNinjaReferenceNodeReference(bnReferenceTree)); + return new FirmwareNinjaReferenceNode(bnReferenceTree); } @@ -658,7 +653,7 @@ Ref<FirmwareNinjaReferenceNode> FirmwareNinja::GetReferenceTree( if (!bnReferenceTree) return nullptr; - return new FirmwareNinjaReferenceNode(BNNewFirmwareNinjaReferenceNodeReference(bnReferenceTree)); + return new FirmwareNinjaReferenceNode(bnReferenceTree); } |
