Skip to content

Commit 6138978

Browse files
SmoothHackerCouleeApps
authored andcommitted
Add more reserve calls
1 parent 3967000 commit 6138978

25 files changed

+74
-1
lines changed

architecture.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,6 +1699,7 @@ vector<Ref<TypeLibrary>> Architecture::GetTypeLibraries()
16991699
BNTypeLibrary** libs = BNGetArchitectureTypeLibraries(m_object, &count);
17001700

17011701
vector<Ref<TypeLibrary>> result;
1702+
result.reserve(count);
17021703
for (size_t i = 0; i < count; ++i)
17031704
{
17041705
result.push_back(new TypeLibrary(BNNewTypeLibraryReference(libs[i])));
@@ -2133,6 +2134,7 @@ vector<NameAndType> CoreArchitecture::GetIntrinsicInputs(uint32_t intrinsic)
21332134
BNNameAndType* inputs = BNGetArchitectureIntrinsicInputs(m_object, intrinsic, &count);
21342135

21352136
vector<NameAndType> result;
2137+
result.reserve(count);
21362138
for (size_t i = 0; i < count; i++)
21372139
{
21382140
result.push_back(NameAndType(inputs[i].name,
@@ -2150,6 +2152,7 @@ vector<Confidence<Ref<Type>>> CoreArchitecture::GetIntrinsicOutputs(uint32_t int
21502152
BNTypeWithConfidence* outputs = BNGetArchitectureIntrinsicOutputs(m_object, intrinsic, &count);
21512153

21522154
vector<Confidence<Ref<Type>>> result;
2155+
result.reserve(count);
21532156
for (size_t i = 0; i < count; i++)
21542157
result.push_back(Confidence<Ref<Type>>(new Type(BNNewTypeReference(outputs[i].type)), outputs[i].confidence));
21552158

binaryview.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3095,6 +3095,7 @@ unordered_set<QualifiedName> BinaryView::GetOutgoingRecursiveTypeReferences(cons
30953095
{
30963096
size_t count;
30973097
vector<BNQualifiedName> apiTypes;
3098+
apiTypes.resize(types.size());
30983099
for (auto& type: types)
30993100
{
31003101
apiTypes.push_back(type.GetAPIObject());
@@ -3146,6 +3147,7 @@ unordered_set<QualifiedName> BinaryView::GetIncomingRecursiveTypeReferences(cons
31463147
{
31473148
size_t count;
31483149
vector<BNQualifiedName> apiTypes;
3150+
apiTypes.reserve(types.size());
31493151
for (auto& type: types)
31503152
{
31513153
apiTypes.push_back(type.GetAPIObject());
@@ -4045,6 +4047,7 @@ vector<DerivedString> BinaryView::GetDerivedStrings()
40454047
size_t count;
40464048
BNDerivedString* strings = BNGetDerivedStrings(m_object, &count);
40474049
vector<DerivedString> result;
4050+
result.reserve(count);
40484051
for (size_t i = 0; i < count; i++)
40494052
result.push_back(DerivedString::FromAPIObject(&strings[i], false));
40504053
BNFreeDerivedStringList(strings, count);
@@ -4281,10 +4284,12 @@ bool BinaryView::ParseTypesFromSource(const string& source, const vector<string>
42814284
}
42824285

42834286
vector<const char*> coreOptions;
4287+
coreOptions.reserve(options.size());
42844288
for (auto& option : options)
42854289
coreOptions.push_back(option.c_str());
42864290

42874291
vector<const char*> coreIncludeDirs;
4292+
coreIncludeDirs.reserve(includeDirs.size());
42884293
for (auto& includeDir : includeDirs)
42894294
coreIncludeDirs.push_back(includeDir.c_str());
42904295

@@ -4911,6 +4916,7 @@ bool BinaryView::DisassociateTypeArchiveType(const std::string& typeId)
49114916
bool BinaryView::PullTypeArchiveTypes(const std::string& archiveId, const std::unordered_set<std::string>& archiveTypeIds, std::unordered_map<std::string, std::string>& updatedTypes)
49124917
{
49134918
std::vector<const char*> apiArchiveTypeIds;
4919+
apiArchiveTypeIds.reserve(archiveTypeIds.size());
49144920
for (const auto& archiveTypeId: archiveTypeIds)
49154921
{
49164922
apiArchiveTypeIds.push_back(archiveTypeId.c_str());
@@ -4935,6 +4941,7 @@ bool BinaryView::PullTypeArchiveTypes(const std::string& archiveId, const std::u
49354941
bool BinaryView::PushTypeArchiveTypes(const std::string& archiveId, const std::unordered_set<std::string>& typeIds, std::unordered_map<std::string, std::string>& updatedTypes)
49364942
{
49374943
std::vector<const char*> apiTypeIds;
4944+
apiTypeIds.reserve(typeIds.size());
49384945
for (const auto& typeId: typeIds)
49394946
{
49404947
apiTypeIds.push_back(typeId.c_str());

collaboration.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,7 @@ bool BinaryNinja::Collaboration::TypeArchiveConflictHandlerCallback(void* ctxt,
437437
if (!chctxt->callback)
438438
return true;
439439
std::vector<Ref<TypeArchiveMergeConflict>> conflictVec;
440+
conflictVec.reserve(count);
440441
for (size_t i = 0; i < count; i++)
441442
{
442443
conflictVec.push_back(new TypeArchiveMergeConflict(conflicts[i]));
@@ -658,6 +659,7 @@ std::vector<std::pair<std::string, std::string>> Remote::GetAuthBackends()
658659
throw RemoteException("Failed to get authentication backends");
659660

660661
std::vector<std::pair<std::string, std::string>> results;
662+
results.reserve(count);
661663
for (size_t i = 0; i < count; i++)
662664
{
663665
results.push_back({methods[i], names[i]});
@@ -855,6 +857,7 @@ std::vector<std::pair<uint64_t, std::string>> Remote::SearchGroups(const std::st
855857
throw RemoteException("Failed to search groups");
856858

857859
std::vector<std::pair<uint64_t, std::string>> results;
860+
results.reserve(count);
858861
for (size_t i = 0; i < count; i++)
859862
{
860863
results.push_back({ids[i], names[i]});
@@ -965,6 +968,7 @@ std::vector<std::pair<std::string, std::string>> Remote::SearchUsers(const std::
965968
throw RemoteException("Failed to search users");
966969

967970
std::vector<std::pair<std::string, std::string>> results;
971+
results.reserve(count);
968972
for (size_t i = 0; i < count; i++)
969973
{
970974
results.push_back({ids[i], names[i]});
@@ -2527,6 +2531,7 @@ std::vector<std::string> CollabSnapshot::GetParentIds()
25272531
size_t count = 0;
25282532
char** strs = BNCollaborationSnapshotGetParentIds(m_object, &count);
25292533
std::vector<std::string> result;
2534+
result.reserve(count);
25302535
for (size_t i = 0; i < count; i++)
25312536
{
25322537
result.push_back(strs[i]);
@@ -2541,6 +2546,7 @@ std::vector<std::string> CollabSnapshot::GetChildIds()
25412546
size_t count = 0;
25422547
char** strs = BNCollaborationSnapshotGetParentIds(m_object, &count);
25432548
std::vector<std::string> result;
2549+
result.reserve(count);
25442550
for (size_t i = 0; i < count; i++)
25452551
{
25462552
result.push_back(strs[i]);

database.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ vector<Ref<Snapshot>> Snapshot::GetParents()
248248
size_t count;
249249
BNSnapshot** parents = BNGetSnapshotParents(m_object, &count);
250250
vector<Ref<Snapshot>> result;
251+
result.reserve(count);
251252
for (size_t i = 0; i < count; i++)
252253
{
253254
result.push_back(new Snapshot(BNNewSnapshotReference(parents[i])));
@@ -262,6 +263,7 @@ vector<Ref<Snapshot>> Snapshot::GetChildren()
262263
size_t count;
263264
BNSnapshot** children = BNGetSnapshotChildren(m_object, &count);
264265
vector<Ref<Snapshot>> result;
266+
result.reserve(count);
265267
for (size_t i = 0; i < count; i++)
266268
{
267269
result.push_back(new Snapshot(BNNewSnapshotReference(children[i])));
@@ -323,6 +325,7 @@ vector<Ref<UndoEntry>> Snapshot::GetUndoEntries(const ProgressFunction& progress
323325
}
324326

325327
vector<Ref<UndoEntry>> result;
328+
result.reserve(count);
326329
for (size_t i = 0; i < count; i++)
327330
{
328331
result.push_back(new UndoEntry(BNNewUndoEntryReference(entries[i])));
@@ -390,6 +393,7 @@ vector<Ref<Snapshot>> Database::GetSnapshots()
390393
size_t count;
391394
BNSnapshot** snapshots = BNGetDatabaseSnapshots(m_object, &count);
392395
vector<Ref<Snapshot>> result;
396+
result.reserve(count);
393397
for (size_t i = 0; i < count; i++)
394398
result.push_back(new Snapshot(BNNewSnapshotReference(snapshots[i])));
395399
BNFreeSnapshotList(snapshots, count);
@@ -455,6 +459,7 @@ std::vector<std::string> Database::GetGlobalKeys() const
455459
}
456460

457461
std::vector<std::string> result;
462+
result.reserve(count);
458463
for (size_t i = 0; i < count; i++)
459464
{
460465
result.push_back(value[i]);

debuginfo.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ vector<string> DebugInfo::GetParsers() const
4444
char** parsers = BNGetDebugParserNames(m_object, &count);
4545

4646
vector<string> result;
47+
result.reserve(count);
4748
for (size_t i = 0; i < count; ++i)
4849
{
4950
result.emplace_back(parsers[i]);
@@ -70,6 +71,7 @@ vector<NameAndType> DebugInfo::GetTypes(const string& parserName) const
7071
return {};
7172

7273
vector<NameAndType> result;
74+
result.reserve(count);
7375
for (size_t i = 0; i < count; ++i)
7476
{
7577
result.emplace_back(nameAndTypes[i].name,
@@ -136,6 +138,7 @@ vector<DataVariableAndName> DebugInfo::GetDataVariables(const string& parserName
136138
return {};
137139

138140
vector<DataVariableAndName> result;
141+
result.reserve(count);
139142
for (size_t i = 0; i < count; ++i)
140143
{
141144
result.emplace_back(variablesAndName[i].address,
@@ -193,6 +196,7 @@ vector<tuple<string, Ref<Type>>> DebugInfo::GetTypesByName(const string& name) c
193196
return {};
194197

195198
vector<tuple<string, Ref<Type>>> result;
199+
result.reserve(count);
196200
for (size_t i = 0; i < count; ++i)
197201
{
198202
result.emplace_back(namesAndTypes[i].name, Ref<Type>(new Type(BNNewTypeReference(namesAndTypes[i].type))));
@@ -213,6 +217,7 @@ vector<tuple<string, uint64_t, Ref<Type>>> DebugInfo::GetDataVariablesByName(con
213217
return {};
214218

215219
vector<tuple<string, uint64_t, Ref<Type>>> result;
220+
result.reserve(count);
216221
for (size_t i = 0; i < count; ++i)
217222
{
218223
result.emplace_back(variablesAndName[i].name, variablesAndName[i].address,
@@ -234,6 +239,7 @@ vector<tuple<string, string, Ref<Type>>> DebugInfo::GetDataVariablesByAddress(co
234239
return {};
235240

236241
vector<tuple<string, string, Ref<Type>>> result;
242+
result.reserve(count);
237243
for (size_t i = 0; i < count; ++i)
238244
{
239245
result.emplace_back(variablesAndName[i].parser, variablesAndName[i].name,
@@ -376,6 +382,7 @@ vector<Ref<DebugInfoParser>> DebugInfoParser::GetList()
376382
BNDebugInfoParser** parsers = BNGetDebugInfoParsers(&count);
377383

378384
vector<Ref<DebugInfoParser>> result;
385+
result.reserve(count);
379386
for (size_t i = 0; i < count; ++i)
380387
{
381388
result.emplace_back(new DebugInfoParser(BNNewDebugInfoParserReference(parsers[i])));
@@ -392,6 +399,7 @@ vector<Ref<DebugInfoParser>> DebugInfoParser::GetListForView(const Ref<BinaryVie
392399
BNDebugInfoParser** parsers = BNGetDebugInfoParsersForView(data->GetObject(), &count);
393400

394401
vector<Ref<DebugInfoParser>> result;
402+
result.reserve(count);
395403
for (size_t i = 0; i < count; ++i)
396404
{
397405
result.emplace_back(new DebugInfoParser(BNNewDebugInfoParserReference(parsers[i])));

demangle.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ namespace BinaryNinja {
191191
size_t count;
192192
BNDemangler** list = BNGetDemanglerList(&count);
193193
vector<Ref<Demangler>> result;
194+
result.reserve(count);
194195
for (size_t i = 0; i < count; i++)
195196
result.push_back(new CoreDemangler(list[i]));
196197
BNFreeDemanglerList(list);

downloadprovider.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ vector<Ref<DownloadProvider>> DownloadProvider::GetList()
230230
size_t count;
231231
BNDownloadProvider** list = BNGetDownloadProviderList(&count);
232232
vector<Ref<DownloadProvider>> result;
233+
result.reserve(count);
233234
for (size_t i = 0; i < count; i++)
234235
result.push_back(new CoreDownloadProvider(list[i]));
235236
BNFreeDownloadProviderList(list);

enterprise.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ std::vector<std::pair<std::string, std::string>> BinaryNinja::Enterprise::GetAut
5555
size_t count = BNGetEnterpriseServerAuthenticationMethods(&methods, &names);
5656

5757
std::vector<std::pair<std::string, std::string>> results;
58+
results.reserve(count);
5859
for (size_t i = 0; i < count; i++)
5960
{
6061
results.push_back({methods[i], names[i]});

filemetadata.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ vector<Ref<UndoEntry>> FileMetadata::GetUndoEntries()
389389
BNUndoEntry** entries = BNGetUndoEntries(m_object, &count);
390390

391391
vector<Ref<UndoEntry>> result;
392+
result.reserve(count);
392393
for (size_t i = 0; i < count; i++)
393394
{
394395
result.push_back(new UndoEntry(BNNewUndoEntryReference(entries[i])));
@@ -404,6 +405,7 @@ vector<Ref<UndoEntry>> FileMetadata::GetRedoEntries()
404405
BNUndoEntry** entries = BNGetRedoEntries(m_object, &count);
405406

406407
vector<Ref<UndoEntry>> result;
408+
result.reserve(count);
407409
for (size_t i = 0; i < count; i++)
408410
{
409411
result.push_back(new UndoEntry(BNNewUndoEntryReference(entries[i])));

flowgraph.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,7 @@ std::vector<RenderLayer*> FlowGraph::GetRenderLayers() const
442442
size_t count = 0;
443443
BNRenderLayer** layers = BNGetFlowGraphRenderLayers(m_object, &count);
444444
std::vector<RenderLayer*> result;
445+
result.reserve(count);
445446
for (size_t i = 0; i < count; i ++)
446447
{
447448
result.push_back(new CoreRenderLayer(layers[i]));

0 commit comments

Comments
 (0)