From 3190696d1c0d7d94420872202a82a43e03dbcb80 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Thu, 11 Jan 2018 17:10:34 -0500 Subject: API Temporary Object Elimination. --- binaryview.cpp | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index 50011a0f..00cd294f 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -82,10 +82,7 @@ void BinaryDataNotification::DataVariableAddedCallback(void* ctxt, BNBinaryView* { BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; Ref view = new BinaryView(BNNewViewReference(object)); - DataVariable varObj; - varObj.address = var->address; - varObj.type = Confidence>(new Type(BNNewTypeReference(var->type)), var->typeConfidence); - varObj.autoDiscovered = var->autoDiscovered; + DataVariable varObj(var->address, Confidence>(new Type(BNNewTypeReference(var->type)), var->typeConfidence), var->autoDiscovered); notify->OnDataVariableAdded(view, varObj); } @@ -94,10 +91,7 @@ void BinaryDataNotification::DataVariableRemovedCallback(void* ctxt, BNBinaryVie { BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; Ref view = new BinaryView(BNNewViewReference(object)); - DataVariable varObj; - varObj.address = var->address; - varObj.type = Confidence>(new Type(BNNewTypeReference(var->type)), var->typeConfidence); - varObj.autoDiscovered = var->autoDiscovered; + DataVariable varObj(var->address, Confidence>(new Type(BNNewTypeReference(var->type)), var->typeConfidence), var->autoDiscovered); notify->OnDataVariableRemoved(view, varObj); } @@ -106,10 +100,7 @@ void BinaryDataNotification::DataVariableUpdatedCallback(void* ctxt, BNBinaryVie { BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; Ref view = new BinaryView(BNNewViewReference(object)); - DataVariable varObj; - varObj.address = var->address; - varObj.type = Confidence>(new Type(BNNewTypeReference(var->type)), var->typeConfidence); - varObj.autoDiscovered = var->autoDiscovered; + DataVariable varObj(var->address, Confidence>(new Type(BNNewTypeReference(var->type)), var->typeConfidence), var->autoDiscovered); notify->OnDataVariableUpdated(view, varObj); } @@ -965,11 +956,8 @@ map BinaryView::GetDataVariables() map result; for (size_t i = 0; i < count; i++) { - DataVariable var; - var.address = vars[i].address; - var.type = Confidence>(new Type(BNNewTypeReference(vars[i].type)), vars[i].typeConfidence); - var.autoDiscovered = vars[i].autoDiscovered; - result[var.address] = var; + result.emplace(piecewise_construct, forward_as_tuple(vars[i].address), + forward_as_tuple(vars[i].address, Confidence>(new Type(BNNewTypeReference(vars[i].type)), vars[i].typeConfidence), vars[i].autoDiscovered)); } BNFreeDataVariables(vars, count); -- cgit v1.3.1