diff options
author | chriseth <chris@ethereum.org> | 2017-07-27 22:40:01 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2017-08-21 23:28:30 +0800 |
commit | e3f90565d8f623537072d84316d476343c2b06ad (patch) | |
tree | 44d2baeeed5e6c38577c743305e7f0234f8ea3cb /libevmasm | |
parent | 4219acaba98b22d6c7b118682480b180e5196f46 (diff) | |
download | dexon-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.cpp | 7 |
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) |