mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[libsolidity] srcmap sourceList handling corrections.
This commit is contained in:
parent
8608bc3b8c
commit
c822263646
@ -523,14 +523,6 @@ bool Assembly::loadFromAssemblyJSON(Json::Value const& _json)
|
|||||||
if (!_json[".code"].isArray())
|
if (!_json[".code"].isArray())
|
||||||
return false;
|
return false;
|
||||||
bool result{true};
|
bool result{true};
|
||||||
if (_json.isMember("sourceList"))
|
|
||||||
{
|
|
||||||
vector<string> sourceList;
|
|
||||||
for (auto const& it: _json["sourceList"])
|
|
||||||
sourceList.emplace_back(it.asString());
|
|
||||||
this->setSources(sourceList);
|
|
||||||
}
|
|
||||||
|
|
||||||
addAssemblyItemsFromJSON(_json[".code"]);
|
addAssemblyItemsFromJSON(_json[".code"]);
|
||||||
if (_json[".auxdata"].isString())
|
if (_json[".auxdata"].isString())
|
||||||
this->m_auxiliaryData = fromHex(_json[".auxdata"].asString());
|
this->m_auxiliaryData = fromHex(_json[".auxdata"].asString());
|
||||||
|
@ -398,7 +398,6 @@ void CompilerStack::importEvmAssemblyJson(map<string, Json::Value> const& _sourc
|
|||||||
|
|
||||||
Json::Value jsonValue = _sources.begin()->second;
|
Json::Value jsonValue = _sources.begin()->second;
|
||||||
if (jsonValue.isMember("sourceList"))
|
if (jsonValue.isMember("sourceList"))
|
||||||
{
|
|
||||||
for (auto const& item: jsonValue["sourceList"])
|
for (auto const& item: jsonValue["sourceList"])
|
||||||
{
|
{
|
||||||
Source source;
|
Source source;
|
||||||
@ -406,7 +405,6 @@ void CompilerStack::importEvmAssemblyJson(map<string, Json::Value> const& _sourc
|
|||||||
m_sources.emplace(std::make_pair(item.asString(), source));
|
m_sources.emplace(std::make_pair(item.asString(), source));
|
||||||
m_sourceOrder.push_back(&m_sources[item.asString()]);
|
m_sourceOrder.push_back(&m_sources[item.asString()]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
m_evmAssemblyJson[_sources.begin()->first] = jsonValue;
|
m_evmAssemblyJson[_sources.begin()->first] = jsonValue;
|
||||||
m_importedSources = true;
|
m_importedSources = true;
|
||||||
m_stackState = SourcesSet;
|
m_stackState = SourcesSet;
|
||||||
@ -687,12 +685,19 @@ bool CompilerStack::compile(State _stopAfter)
|
|||||||
optimiserSettings.runJumpdestRemover = m_optimiserSettings.runJumpdestRemover;
|
optimiserSettings.runJumpdestRemover = m_optimiserSettings.runJumpdestRemover;
|
||||||
optimiserSettings.runPeephole = m_optimiserSettings.runPeephole;
|
optimiserSettings.runPeephole = m_optimiserSettings.runPeephole;
|
||||||
|
|
||||||
|
vector<string> sourceList;
|
||||||
|
if (m_evmAssemblyJson[evmAssemblyJsonSource].isMember("sourceList"))
|
||||||
|
for (auto const& it: m_evmAssemblyJson[evmAssemblyJsonSource]["sourceList"])
|
||||||
|
sourceList.emplace_back(it.asString());
|
||||||
|
|
||||||
m_contracts[evmAssemblyJsonSource].evmAssembly = make_shared<evmasm::Assembly>(evmAssemblyJsonSource);
|
m_contracts[evmAssemblyJsonSource].evmAssembly = make_shared<evmasm::Assembly>(evmAssemblyJsonSource);
|
||||||
|
m_contracts[evmAssemblyJsonSource].evmAssembly->setSources(sourceList);
|
||||||
m_contracts[evmAssemblyJsonSource].evmAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource]);
|
m_contracts[evmAssemblyJsonSource].evmAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource]);
|
||||||
m_contracts[evmAssemblyJsonSource].evmAssembly->optimise(optimiserSettings);
|
m_contracts[evmAssemblyJsonSource].evmAssembly->optimise(optimiserSettings);
|
||||||
m_contracts[evmAssemblyJsonSource].object = m_contracts[evmAssemblyJsonSource].evmAssembly->assemble();
|
m_contracts[evmAssemblyJsonSource].object = m_contracts[evmAssemblyJsonSource].evmAssembly->assemble();
|
||||||
|
|
||||||
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly = make_shared<evmasm::Assembly>(evmAssemblyJsonSource);
|
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly = make_shared<evmasm::Assembly>(evmAssemblyJsonSource);
|
||||||
|
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->setSources(sourceList);
|
||||||
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource][".data"]["0"]);
|
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->loadFromAssemblyJSON(m_evmAssemblyJson[evmAssemblyJsonSource][".data"]["0"]);
|
||||||
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->optimise(optimiserSettings);
|
m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->optimise(optimiserSettings);
|
||||||
m_contracts[evmAssemblyJsonSource].runtimeObject = m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->assemble();
|
m_contracts[evmAssemblyJsonSource].runtimeObject = m_contracts[evmAssemblyJsonSource].evmRuntimeAssembly->assemble();
|
||||||
|
Loading…
Reference in New Issue
Block a user