summaryrefslogtreecommitdiff
path: root/architecture.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-02-12 21:48:34 -0500
committerRusty Wagner <rusty@vector35.com>2018-02-12 21:48:34 -0500
commitbba715aff1565426fba31e2f39c438f37921c303 (patch)
tree9f1a0fd2b15d5d8bcc5d02a90449f0a7a3d6abc3 /architecture.cpp
parent79b5bdcf42f6abf1c8b2c4bda4c30b41319c4aa5 (diff)
parentc352fec480dde5321a0c52850be1bb8a3df9bbd3 (diff)
Merge branch 'dev' into fpu
Diffstat (limited to 'architecture.cpp')
-rw-r--r--architecture.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/architecture.cpp b/architecture.cpp
index 223af13d..90f8e622 100644
--- a/architecture.cpp
+++ b/architecture.cpp
@@ -722,6 +722,7 @@ vector<Ref<Architecture>> Architecture::GetList()
archs = BNGetArchitectureList(&count);
vector<Ref<Architecture>> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(new CoreArchitecture(archs[i]));
@@ -1031,6 +1032,7 @@ vector<uint32_t> Architecture::GetModifiedRegistersOnWrite(uint32_t reg)
uint32_t* regs = BNGetModifiedArchitectureRegistersOnWrite(m_object, reg, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1142,6 +1144,7 @@ vector<Ref<CallingConvention>> Architecture::GetCallingConventions()
BNCallingConvention** list = BNGetArchitectureCallingConventions(m_object, &count);
vector<Ref<CallingConvention>> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(new CoreCallingConvention(BNNewCallingConventionReference(list[i])));
@@ -1285,10 +1288,11 @@ bool CoreArchitecture::GetInstructionText(const uint8_t* data, uint64_t addr, si
if (!BNGetInstructionText(m_object, data, addr, &len, &tokens, &count))
return false;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
{
- result.push_back(InstructionTextToken(tokens[i].type, tokens[i].context, tokens[i].text, tokens[i].address,
- tokens[i].value, tokens[i].size, tokens[i].operand, tokens[i].confidence));
+ result.emplace_back(tokens[i].type, tokens[i].context, tokens[i].text, tokens[i].address,
+ tokens[i].value, tokens[i].size, tokens[i].operand, tokens[i].confidence);
}
BNFreeInstructionText(tokens, count);
@@ -1353,6 +1357,7 @@ vector<uint32_t> CoreArchitecture::GetFullWidthRegisters()
uint32_t* regs = BNGetFullWidthArchitectureRegisters(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1367,6 +1372,7 @@ vector<uint32_t> CoreArchitecture::GetAllRegisters()
uint32_t* regs = BNGetAllArchitectureRegisters(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1381,6 +1387,7 @@ vector<uint32_t> CoreArchitecture::GetAllFlags()
uint32_t* regs = BNGetAllArchitectureFlags(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1395,6 +1402,7 @@ vector<uint32_t> CoreArchitecture::GetAllFlagWriteTypes()
uint32_t* regs = BNGetAllArchitectureFlagWriteTypes(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);
@@ -1457,6 +1465,7 @@ vector<uint32_t> CoreArchitecture::GetFlagsRequiredForSemanticFlagGroup(uint32_t
uint32_t* flags = BNGetArchitectureFlagsRequiredForSemanticFlagGroup(m_object, semGroup, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(flags[i]);
@@ -1486,6 +1495,7 @@ vector<uint32_t> CoreArchitecture::GetFlagsWrittenByFlagWriteType(uint32_t write
uint32_t* flags = BNGetArchitectureFlagsWrittenByFlagWriteType(m_object, writeType, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(flags[i]);
@@ -1545,6 +1555,7 @@ vector<uint32_t> CoreArchitecture::GetGlobalRegisters()
uint32_t* regs = BNGetArchitectureGlobalRegisters(m_object, &count);
vector<uint32_t> result;
+ result.reserve(count);
for (size_t i = 0; i < count; i++)
result.push_back(regs[i]);