diff options
| -rw-r--r-- | architecture.cpp | 5 | ||||
| -rw-r--r-- | basedetection.cpp | 1 | ||||
| -rw-r--r-- | binaryninjaapi.cpp | 1 | ||||
| -rw-r--r-- | binaryview.cpp | 3 | ||||
| -rw-r--r-- | debuginfo.cpp | 3 | ||||
| -rw-r--r-- | firmwareninja.cpp | 1 | ||||
| -rw-r--r-- | function.cpp | 1 | ||||
| -rw-r--r-- | linearviewcursor.cpp | 1 | ||||
| -rw-r--r-- | platform.cpp | 1 | ||||
| -rw-r--r-- | possiblevalueset.cpp | 2 | ||||
| -rw-r--r-- | type.cpp | 1 | ||||
| -rw-r--r-- | typearchive.cpp | 1 |
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]); } @@ -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; |
