aboutsummaryrefslogtreecommitdiffstats
path: root/libevmasm
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-07-27 22:40:01 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-08-21 23:28:30 +0800
commite3f90565d8f623537072d84316d476343c2b06ad (patch)
tree44d2baeeed5e6c38577c743305e7f0234f8ea3cb /libevmasm
parent4219acaba98b22d6c7b118682480b180e5196f46 (diff)
downloaddexon-solidity-e3f90565d8f623537072d84316d476343c2b06ad.tar.gz
dexon-solidity-e3f90565d8f623537072d84316d476343c2b06ad.tar.zst
dexon-solidity-e3f90565d8f623537072d84316d476343c2b06ad.zip
Avoid some Json copy operations.
Diffstat (limited to 'libevmasm')
-rw-r--r--libevmasm/Assembly.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/libevmasm/Assembly.cpp b/libevmasm/Assembly.cpp
index 42b923df..0a3bf6b8 100644
--- a/libevmasm/Assembly.cpp
+++ b/libevmasm/Assembly.cpp
@@ -233,7 +233,7 @@ Json::Value Assembly::streamAsmJson(ostream& _out, StringMap const& _sourceCodes
{
Json::Value root;
- Json::Value collection(Json::arrayValue);
+ Json::Value& collection = root[".code"] = Json::arrayValue;
for (AssemblyItem const& i: m_items)
{
switch (i.type())
@@ -289,11 +289,9 @@ Json::Value Assembly::streamAsmJson(ostream& _out, StringMap const& _sourceCodes
}
}
- root[".code"] = collection;
-
if (!m_data.empty() || !m_subs.empty())
{
- Json::Value data;
+ Json::Value& data = root[".data"] = Json::objectValue;
for (auto const& i: m_data)
if (u256(i.first) >= m_subs.size())
data[toStringInHex((u256)i.first)] = toHex(i.second);
@@ -304,7 +302,6 @@ Json::Value Assembly::streamAsmJson(ostream& _out, StringMap const& _sourceCodes
hexStr << hex << i;
data[hexStr.str()] = m_subs[i]->stream(_out, "", _sourceCodes, true);
}
- root[".data"] = data;
}
if (m_auxiliaryData.size() > 0)