diff options
| author | Glenn Smith <glenn@vector35.com> | 2021-07-03 01:08:47 -0400 |
|---|---|---|
| committer | Glenn Smith <glenn@vector35.com> | 2021-07-09 16:39:09 -0400 |
| commit | 3808f91664f9632eb9d754a1ff99447b50468b36 (patch) | |
| tree | 44f0dbf857de5aeeb03fe27fb2c11aa136074682 /function.cpp | |
| parent | d19f5e85ee26c3d6604798d30ab821d15731cada (diff) | |
Cleanup tags and comments in many places
Fixes #1926 #2374 #2325 #2204 #1652 and possibly others
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp index 36d5a313..70985d64 100644 --- a/function.cpp +++ b/function.cpp @@ -1557,6 +1557,22 @@ std::vector<TagReference> Function::GetAddressTagReferences() } +std::vector<TagReference> Function::GetAutoAddressTagReferences() +{ + size_t count; + BNTagReference* refs = BNGetAutoAddressTagReferences(m_object, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + +std::vector<TagReference> Function::GetUserAddressTagReferences() +{ + size_t count; + BNTagReference* refs = BNGetUserAddressTagReferences(m_object, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + std::vector<Ref<Tag>> Function::GetAddressTags(Architecture* arch, uint64_t addr) { size_t count; @@ -1565,6 +1581,22 @@ std::vector<Ref<Tag>> Function::GetAddressTags(Architecture* arch, uint64_t addr } +std::vector<Ref<Tag>> Function::GetAutoAddressTags(Architecture* arch, uint64_t addr) +{ + size_t count; + BNTag** tags = BNGetAutoAddressTags(m_object, arch->GetObject(), addr, &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + +std::vector<Ref<Tag>> Function::GetUserAddressTags(Architecture* arch, uint64_t addr) +{ + size_t count; + BNTag** tags = BNGetUserAddressTags(m_object, arch->GetObject(), addr, &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + std::vector<Ref<Tag>> Function::GetAddressTagsOfType(Architecture* arch, uint64_t addr, Ref<TagType> tagType) { size_t count; @@ -1573,6 +1605,46 @@ std::vector<Ref<Tag>> Function::GetAddressTagsOfType(Architecture* arch, uint64_ } +std::vector<Ref<Tag>> Function::GetAutoAddressTagsOfType(Architecture* arch, uint64_t addr, Ref<TagType> tagType) +{ + size_t count; + BNTag** tags = BNGetAutoAddressTagsOfType(m_object, arch->GetObject(), addr, tagType->GetObject(), &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + +std::vector<Ref<Tag>> Function::GetUserAddressTagsOfType(Architecture* arch, uint64_t addr, Ref<TagType> tagType) +{ + size_t count; + BNTag** tags = BNGetUserAddressTagsOfType(m_object, arch->GetObject(), addr, tagType->GetObject(), &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + +std::vector<TagReference> Function::GetAddressTagsInRange(Architecture* arch, uint64_t start, uint64_t end) +{ + size_t count; + BNTagReference* refs = BNGetAddressTagsInRange(m_object, arch->GetObject(), start, end, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + +std::vector<TagReference> Function::GetAutoAddressTagsInRange(Architecture* arch, uint64_t start, uint64_t end) +{ + size_t count; + BNTagReference* refs = BNGetAutoAddressTagsInRange(m_object, arch->GetObject(), start, end, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + +std::vector<TagReference> Function::GetUserAddressTagsInRange(Architecture* arch, uint64_t start, uint64_t end) +{ + size_t count; + BNTagReference* refs = BNGetUserAddressTagsInRange(m_object, arch->GetObject(), start, end, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + void Function::AddAutoAddressTag(Architecture* arch, uint64_t addr, Ref<Tag> tag) { BNAddAutoAddressTag(m_object, arch->GetObject(), addr, tag->GetObject()); @@ -1585,6 +1657,12 @@ void Function::RemoveAutoAddressTag(Architecture* arch, uint64_t addr, Ref<Tag> } +void Function::RemoveAutoAddressTagsOfType(Architecture* arch, uint64_t addr, Ref<TagType> tagType) +{ + BNRemoveAutoAddressTagsOfType(m_object, arch->GetObject(), addr, tagType->GetObject()); +} + + void Function::AddUserAddressTag(Architecture* arch, uint64_t addr, Ref<Tag> tag) { BNAddUserAddressTag(m_object, arch->GetObject(), addr, tag->GetObject()); @@ -1597,6 +1675,12 @@ void Function::RemoveUserAddressTag(Architecture* arch, uint64_t addr, Ref<Tag> } +void Function::RemoveUserAddressTagsOfType(Architecture* arch, uint64_t addr, Ref<TagType> tagType) +{ + BNRemoveUserAddressTagsOfType(m_object, arch->GetObject(), addr, tagType->GetObject()); +} + + std::vector<TagReference> Function::GetFunctionTagReferences() { size_t count; @@ -1605,6 +1689,22 @@ std::vector<TagReference> Function::GetFunctionTagReferences() } +std::vector<TagReference> Function::GetAutoFunctionTagReferences() +{ + size_t count; + BNTagReference* refs = BNGetAutoFunctionTagReferences(m_object, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + +std::vector<TagReference> Function::GetUserFunctionTagReferences() +{ + size_t count; + BNTagReference* refs = BNGetUserFunctionTagReferences(m_object, &count); + return TagReference::ConvertAndFreeTagReferenceList(refs, count); +} + + std::vector<Ref<Tag>> Function::GetFunctionTags() { size_t count; @@ -1613,6 +1713,22 @@ std::vector<Ref<Tag>> Function::GetFunctionTags() } +std::vector<Ref<Tag>> Function::GetAutoFunctionTags() +{ + size_t count; + BNTag** tags = BNGetAutoFunctionTags(m_object, &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + +std::vector<Ref<Tag>> Function::GetUserFunctionTags() +{ + size_t count; + BNTag** tags = BNGetUserFunctionTags(m_object, &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + std::vector<Ref<Tag>> Function::GetFunctionTagsOfType(Ref<TagType> tagType) { size_t count; @@ -1621,6 +1737,22 @@ std::vector<Ref<Tag>> Function::GetFunctionTagsOfType(Ref<TagType> tagType) } +std::vector<Ref<Tag>> Function::GetAutoFunctionTagsOfType(Ref<TagType> tagType) +{ + size_t count; + BNTag** tags = BNGetAutoFunctionTagsOfType(m_object, tagType->GetObject(), &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + +std::vector<Ref<Tag>> Function::GetUserFunctionTagsOfType(Ref<TagType> tagType) +{ + size_t count; + BNTag** tags = BNGetUserFunctionTagsOfType(m_object, tagType->GetObject(), &count); + return Tag::ConvertAndFreeTagList(tags, count); +} + + void Function::AddAutoFunctionTag(Ref<Tag> tag) { BNAddAutoFunctionTag(m_object, tag->GetObject()); @@ -1633,6 +1765,12 @@ void Function::RemoveAutoFunctionTag(Ref<Tag> tag) } +void Function::RemoveAutoFunctionTagsOfType(Ref<TagType> tagType) +{ + BNRemoveAutoFunctionTagsOfType(m_object, tagType->GetObject()); +} + + void Function::AddUserFunctionTag(Ref<Tag> tag) { BNAddUserFunctionTag(m_object, tag->GetObject()); @@ -1645,6 +1783,12 @@ void Function::RemoveUserFunctionTag(Ref<Tag> tag) } +void Function::RemoveUserFunctionTagsOfType(Ref<TagType> tagType) +{ + BNRemoveUserFunctionTagsOfType(m_object, tagType->GetObject()); +} + + Ref<Tag> Function::CreateAutoAddressTag(Architecture* arch, uint64_t addr, const std::string& tagTypeName, const std::string& data, bool unique) { Ref<TagType> tagType = GetView()->GetTagTypeByName(tagTypeName); |
