Skip to content

Commit c822263

Browse files
committed
[libsolidity] srcmap sourceList handling corrections.
1 parent 8608bc3 commit c822263

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

libevmasm/Assembly.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -523,14 +523,6 @@ bool Assembly::loadFromAssemblyJSON(Json::Value const& _json)
523523
if (!_json[".code"].isArray())
524524
return false;
525525
bool result{true};
526-
if (_json.isMember("sourceList"))
527-
{
528-
vector<string> sourceList;
529-
for (auto const& it: _json["sourceList"])
530-
sourceList.emplace_back(it.asString());
531-
this->setSources(sourceList);
532-
}
533-
534526
addAssemblyItemsFromJSON(_json[".code"]);
535527
if (_json[".auxdata"].isString())
536528
this->m_auxiliaryData = fromHex(_json[".auxdata"].asString());

libsolidity/interface/CompilerStack.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,15 +398,13 @@ void CompilerStack::importEvmAssemblyJson(map<string, Json::Value> const& _sourc
398398

399399
Json::Value jsonValue = _sources.begin()->second;
400400
if (jsonValue.isMember("sourceList"))
401-
{
402401
for (auto const& item: jsonValue["sourceList"])
403402
{
404403
Source source;
405404
source.charStream = std::make_shared<CharStream>(item.asString(), "");
406405
m_sources.emplace(std::make_pair(item.asString(), source));
407406
m_sourceOrder.push_back(&m_sources[item.asString()]);
408407
}
409-
}
410408
m_evmAssemblyJson[_sources.begin()->first] = jsonValue;
411409
m_importedSources = true;
412410
m_stackState = SourcesSet;
@@ -687,12 +685,19 @@ bool CompilerStack::compile(State _stopAfter)
687685
optimiserSettings.runJumpdestRemover = m_optimiserSettings.runJumpdestRemover;
688686
optimiserSettings.runPeephole = m_optimiserSettings.runPeephole;
689687

688+
vector<string> sourceList;
689+
if (m_evmAssemblyJson[evmAssemblyJsonSource].isMember("sourceList"))
690+
for (auto const& it: m_evmAssemblyJson[evmAssemblyJsonSource]["sourceList"])
691+
sourceList.emplace_back(it.asString());
692+
690693
m_contracts[evmAssemblyJsonSource].evmAssembly = make_shared<evmasm::Assembly>(evmAssemblyJsonSource);
694+
m_contracts[evmAssemblyJsonSource].evmAssembly->setSources(sourceList);
691695
m_contracts[evmAssemblyJsonSource].evmAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource]);
692696
m_contracts[evmAssemblyJsonSource].evmAssembly->optimise(optimiserSettings);
693697
m_contracts[evmAssemblyJsonSource].object = m_contracts[evmAssemblyJsonSource].evmAssembly->assemble();
694698

695699
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly = make_shared<evmasm::Assembly>(evmAssemblyJsonSource);
700+
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->setSources(sourceList);
696701
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource][".data"]["0"]);
697702
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->optimise(optimiserSettings);
698703
m_contracts[evmAssemblyJsonSource].runtimeObject = m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->assemble();

0 commit comments

Comments
 (0)