summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--architecture.cpp5
-rw-r--r--basedetection.cpp1
-rw-r--r--binaryninjaapi.cpp1
-rw-r--r--binaryview.cpp3
-rw-r--r--debuginfo.cpp3
-rw-r--r--firmwareninja.cpp1
-rw-r--r--function.cpp1
-rw-r--r--linearviewcursor.cpp1
-rw-r--r--platform.cpp1
-rw-r--r--possiblevalueset.cpp2
-rw-r--r--type.cpp1
-rw-r--r--typearchive.cpp1
12 files changed, 21 insertions, 0 deletions
diff --git a/architecture.cpp b/architecture.cpp
index 6db5b6b5..c02f673c 100644
--- a/architecture.cpp
+++ b/architecture.cpp
@@ -1902,6 +1902,7 @@ vector<uint32_t> CoreArchitecture::GetAllSemanticFlagClasses()
uint32_t* regs = BNGetAllArchitectureSemanticFlagClasses(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1916,6 +1917,7 @@ vector<uint32_t> CoreArchitecture::GetAllSemanticFlagGroups()
uint32_t* regs = BNGetAllArchitectureSemanticFlagGroups(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1936,6 +1938,7 @@ vector<uint32_t> CoreArchitecture::GetFlagsRequiredForFlagCondition(BNLowLevelIL
uint32_t* flags = BNGetArchitectureFlagsRequiredForFlagCondition(m_object, cond, semClass, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(flags[i]);
@@ -2079,6 +2082,7 @@ vector<uint32_t> CoreArchitecture::GetAllRegisterStacks()
uint32_t* regs = BNGetAllArchitectureRegisterStacks(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -2114,6 +2118,7 @@ vector<uint32_t> CoreArchitecture::GetAllIntrinsics()
uint32_t* regs = BNGetAllArchitectureIntrinsics(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
diff --git a/basedetection.cpp b/basedetection.cpp
index 0b660d36..245522fb 100644
--- a/basedetection.cpp
+++ b/basedetection.cpp
@@ -84,6 +84,7 @@ std::vector<BNBaseAddressDetectionReason> BaseAddressDetection::GetReasonsForBas
if (!reasons)
return result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(reasons[i]);
diff --git a/binaryninjaapi.cpp b/binaryninjaapi.cpp
index c35e28c8..b8718adf 100644
--- a/binaryninjaapi.cpp
+++ b/binaryninjaapi.cpp
@@ -454,6 +454,7 @@ BinaryNinja::ProgressFunction BinaryNinja::SplitProgress(
// Keep a running count of weights for the start
std::vector<double> subpartStarts;
double start = 0.0;
+ subpartStarts.reserve(subpartWeights.size());
for (size_t i = 0; i < subpartWeights.size(); ++i)
{
subpartStarts.push_back(start);
diff --git a/binaryview.cpp b/binaryview.cpp
index ca226119..c1a22b0f 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -2418,6 +2418,7 @@ vector<Ref<Function>> BinaryView::GetAllEntryFunctions()
return {};
vector<Ref<Function>> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(new Function(BNNewFunctionReference(funcs[i])));
BNFreeFunctionList(funcs, count);
@@ -4377,6 +4378,7 @@ vector<pair<QualifiedName, Ref<Type>>> BinaryView::GetDependencySortedTypes()
BNQualifiedNameAndType* types = BNGetAnalysisDependencySortedTypeList(m_object, &count);
vector<pair<QualifiedName, Ref<Type>>> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
{
QualifiedName name = QualifiedName::FromAPIObject(&types[i].name);
@@ -4647,6 +4649,7 @@ std::vector<Ref<TypeLibrary>> BinaryView::GetTypeLibraries()
BNTypeLibrary** libs = BNGetBinaryViewTypeLibraries(m_object, &count);
vector<Ref<TypeLibrary>> result;
+ result.reserve(count);
for (size_t i = 0; i < count; ++i)
{
result.push_back(new TypeLibrary(BNNewTypeLibraryReference(libs[i])));
diff --git a/debuginfo.cpp b/debuginfo.cpp
index b3f14383..ec02db4b 100644
--- a/debuginfo.cpp
+++ b/debuginfo.cpp
@@ -91,13 +91,16 @@ vector<DebugFunctionInfo> DebugInfo::GetFunctions(const string& parserName) cons
return {};
vector<DebugFunctionInfo> result;
+ result.reserve(count);
for (size_t i = 0; i < count; ++i)
{
vector<string> components;
+ components.reserve(functions[i].componentN);
for (size_t componentN = 0; componentN < functions[i].componentN; ++componentN)
components.emplace_back(functions[i].components[componentN]);
vector<VariableNameAndType> localVariables;
+ localVariables.reserve(functions[i].localVariableN);
for (size_t localVariableN = 0; localVariableN < functions[i].localVariableN; ++localVariableN)
{
auto& bnVar = functions[i].localVariables[localVariableN];
diff --git a/firmwareninja.cpp b/firmwareninja.cpp
index 02c62526..da54ddfe 100644
--- a/firmwareninja.cpp
+++ b/firmwareninja.cpp
@@ -508,6 +508,7 @@ std::vector<FirmwareNinjaFunctionMemoryAccesses> FirmwareNinja::GetFunctionMemor
FirmwareNinjaFunctionMemoryAccesses info;
info.start = fma[i]->start;
info.count = fma[i]->count;
+ info.accesses.reserve(info.count);
for (size_t j = 0; j < info.count; j++)
{
BNFirmwareNinjaMemoryAccess access;
diff --git a/function.cpp b/function.cpp
index 68704e4d..f28fda90 100644
--- a/function.cpp
+++ b/function.cpp
@@ -733,6 +733,7 @@ Confidence<vector<uint32_t>> Function::GetReturnRegisters() const
{
BNRegisterSetWithConfidence regs = BNGetFunctionReturnRegisters(m_object);
vector<uint32_t> regList;
+ regList.reserve(regs.count);
for (size_t i = 0; i < regs.count; i++)
regList.push_back(regs.regs[i]);
Confidence<vector<uint32_t>> result(regList, regs.confidence);
diff --git a/linearviewcursor.cpp b/linearviewcursor.cpp
index c468d085..8e7ef838 100644
--- a/linearviewcursor.cpp
+++ b/linearviewcursor.cpp
@@ -68,6 +68,7 @@ vector<LinearViewObjectIdentifier> LinearViewCursor::GetPath() const
size_t count;
BNLinearViewObjectIdentifier* path = BNGetLinearViewCursorPath(m_object, &count);
vector<LinearViewObjectIdentifier> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
{
LinearViewObjectIdentifier id;
diff --git a/platform.cpp b/platform.cpp
index ef32e469..1ceaf4c0 100644
--- a/platform.cpp
+++ b/platform.cpp
@@ -446,6 +446,7 @@ std::vector<uint32_t> CorePlatform::GetGlobalRegisters()
uint32_t* regs = BNGetPlatformGlobalRegisters(m_object, &count);
std::vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
diff --git a/possiblevalueset.cpp b/possiblevalueset.cpp
index 93819782..f8ac6c67 100644
--- a/possiblevalueset.cpp
+++ b/possiblevalueset.cpp
@@ -34,6 +34,7 @@ PossibleValueSet PossibleValueSet::FromAPIObject(BNPossibleValueSet& value)
result.size = value.size;
if (value.state == LookupTableValue)
{
+ result.table.reserve(value.count);
for (size_t i = 0; i < value.count; i++)
{
LookupTableEntry entry;
@@ -45,6 +46,7 @@ PossibleValueSet PossibleValueSet::FromAPIObject(BNPossibleValueSet& value)
}
else if ((value.state == SignedRangeValue) || (value.state == UnsignedRangeValue))
{
+ result.ranges.reserve(value.count);
for (size_t i = 0; i < value.count; i++)
result.ranges.push_back(value.ranges[i]);
}
diff --git a/type.cpp b/type.cpp
index 17f78840..086ac863 100644
--- a/type.cpp
+++ b/type.cpp
@@ -2218,6 +2218,7 @@ TypeBuilder& TypeBuilder::AddPointerSuffix(BNPointerSuffix ps)
TypeBuilder& TypeBuilder::SetPointerSuffix(const std::set<BNPointerSuffix>& suffix)
{
std::vector<BNPointerSuffix> apiSuffix;
+ apiSuffix.reserve(suffix.size());
for (auto& s: suffix)
{
apiSuffix.push_back(s);
diff --git a/typearchive.cpp b/typearchive.cpp
index acd4447b..ee2bd4df 100644
--- a/typearchive.cpp
+++ b/typearchive.cpp
@@ -232,6 +232,7 @@ TypeContainer TypeArchive::GetTypeContainer() const
bool TypeArchive::AddTypes(const std::vector<QualifiedNameAndType>& types)
{
std::vector<BNQualifiedNameAndType> apiTypes;
+ apiTypes.reserve(types.size());
for (auto& type : types)
{
BNQualifiedNameAndType qnat;