mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add explicit std:: namespace.
This commit is contained in:
parent
c7a1dd2d92
commit
3e98d49b3e
@ -75,11 +75,11 @@ unsigned Assembly::codeSize(unsigned subTagSize) const
|
||||
}
|
||||
}
|
||||
|
||||
void Assembly::importAssemblyItemsFromJSON(Json::Value const& _code, vector<string> const& _sourceList)
|
||||
void Assembly::importAssemblyItemsFromJSON(Json::Value const& _code, std::vector<std::string> const& _sourceList)
|
||||
{
|
||||
solAssert(m_items.empty());
|
||||
solRequire(_code.isArray(), AssemblyImportException, "Supplied JSON is not an array.");
|
||||
for (auto current = begin(_code); current != end(_code); ++current)
|
||||
for (auto current = std::begin(_code); current != std::end(_code); ++current)
|
||||
{
|
||||
auto const& item = m_items.emplace_back(createAssemblyItemFromJSON(*current, _sourceList));
|
||||
if (item == Instruction::JUMPDEST)
|
||||
@ -87,7 +87,7 @@ void Assembly::importAssemblyItemsFromJSON(Json::Value const& _code, vector<stri
|
||||
else if (item.type() == AssemblyItemType::Tag)
|
||||
{
|
||||
++current;
|
||||
if (current != end(_code) && createAssemblyItemFromJSON(*current, _sourceList) != Instruction::JUMPDEST)
|
||||
if (current != std::end(_code) && createAssemblyItemFromJSON(*current, _sourceList) != Instruction::JUMPDEST)
|
||||
solThrow(AssemblyImportException, "JUMPDEST expected after tag.");
|
||||
}
|
||||
}
|
||||
@ -96,7 +96,7 @@ void Assembly::importAssemblyItemsFromJSON(Json::Value const& _code, vector<stri
|
||||
AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std::vector<std::string> const& _sourceList)
|
||||
{
|
||||
solRequire(_json.isObject(), AssemblyImportException, "Supplied JSON is not an object.");
|
||||
static set<string> const validMembers{"name", "begin", "end", "source", "value", "modifierDepth", "jumpType"};
|
||||
static std::set<std::string> const validMembers{"name", "begin", "end", "source", "value", "modifierDepth", "jumpType"};
|
||||
for (auto const& member: _json.getMemberNames())
|
||||
solRequire(
|
||||
validMembers.count(member),
|
||||
@ -104,23 +104,23 @@ AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std:
|
||||
"Unknown member '" + member + "'. Valid members are " +
|
||||
solidity::util::joinHumanReadable(validMembers, ", ") + "."
|
||||
);
|
||||
solRequire(isOfType<string>(_json["name"]), AssemblyImportException, "Member 'name' missing or not of type string.");
|
||||
solRequire(isOfType<std::string>(_json["name"]), AssemblyImportException, "Member 'name' missing or not of type string.");
|
||||
solRequire(isOfTypeIfExists<int>(_json, "begin"), AssemblyImportException, "Optional member 'begin' not of type int.");
|
||||
solRequire(isOfTypeIfExists<int>(_json, "end"), AssemblyImportException, "Optional member 'end' not of type int.");
|
||||
solRequire(isOfTypeIfExists<int>(_json, "source"), AssemblyImportException, "Optional member 'source' not of type int.");
|
||||
solRequire(isOfTypeIfExists<string>(_json, "value"), AssemblyImportException, "Optional member 'value' not of type string.");
|
||||
solRequire(isOfTypeIfExists<std::string>(_json, "value"), AssemblyImportException, "Optional member 'value' not of type string.");
|
||||
solRequire(
|
||||
isOfTypeIfExists<int>(_json, "modifierDepth"),
|
||||
AssemblyImportException,
|
||||
"Optional member 'modifierDepth' not of type int."
|
||||
);
|
||||
solRequire(
|
||||
isOfTypeIfExists<string>(_json, "jumpType"),
|
||||
isOfTypeIfExists<std::string>(_json, "jumpType"),
|
||||
AssemblyImportException,
|
||||
"Optional member 'jumpType' not of type string."
|
||||
);
|
||||
|
||||
string name = get<string>(_json["name"]);
|
||||
std::string name = get<std::string>(_json["name"]);
|
||||
solRequire(!name.empty(), AssemblyImportException, "Member 'name' was empty.");
|
||||
|
||||
SourceLocation location;
|
||||
@ -128,16 +128,16 @@ AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std:
|
||||
location.end = get<int>(_json["end"]);
|
||||
int srcIndex = getOrDefault<int>(_json["source"], -1);
|
||||
size_t modifierDepth = static_cast<size_t>(getOrDefault<int>(_json["modifierDepth"], 0));
|
||||
string value = getOrDefault<string>(_json["value"], "");
|
||||
string jumpType = getOrDefault<string>(_json["jumpType"], "");
|
||||
std::string value = getOrDefault<std::string>(_json["value"], "");
|
||||
std::string jumpType = getOrDefault<std::string>(_json["jumpType"], "");
|
||||
|
||||
auto updateUsedTags = [&](u256 const& data)
|
||||
{
|
||||
m_usedTags = max(m_usedTags, static_cast<unsigned>(data) + 1);
|
||||
m_usedTags = std::max(m_usedTags, static_cast<unsigned>(data) + 1);
|
||||
return data;
|
||||
};
|
||||
|
||||
auto storeImmutableHash = [&](string const& _immutableName) -> h256
|
||||
auto storeImmutableHash = [&](std::string const& _immutableName) -> h256
|
||||
{
|
||||
h256 hash(util::keccak256(_immutableName));
|
||||
solAssert(m_immutables.count(hash) == 0 || m_immutables[hash] == _immutableName);
|
||||
@ -145,7 +145,7 @@ AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std:
|
||||
return hash;
|
||||
};
|
||||
|
||||
auto storeLibraryHash = [&](string const& _libraryName) -> h256
|
||||
auto storeLibraryHash = [&](std::string const& _libraryName) -> h256
|
||||
{
|
||||
h256 hash(util::keccak256(_libraryName));
|
||||
solAssert(m_libraries.count(hash) == 0 || m_libraries[hash] == _libraryName);
|
||||
@ -153,7 +153,7 @@ AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std:
|
||||
return hash;
|
||||
};
|
||||
|
||||
auto requireValueDefinedForInstruction = [&](string const& _name, string const& _value)
|
||||
auto requireValueDefinedForInstruction = [&](std::string const& _name, std::string const& _value)
|
||||
{
|
||||
solRequire(
|
||||
!_value.empty(),
|
||||
@ -162,7 +162,7 @@ AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std:
|
||||
);
|
||||
};
|
||||
|
||||
auto requireValueUndefinedForInstruction = [&](string const& _name, string const& _value)
|
||||
auto requireValueUndefinedForInstruction = [&](std::string const& _name, std::string const& _value)
|
||||
{
|
||||
solRequire(
|
||||
_value.empty(),
|
||||
@ -174,7 +174,7 @@ AssemblyItem Assembly::createAssemblyItemFromJSON(Json::Value const& _json, std:
|
||||
solRequire(srcIndex >= -1 && srcIndex < static_cast<int>(_sourceList.size()), AssemblyImportException, "srcIndex out of bound.");
|
||||
if (srcIndex != -1)
|
||||
{
|
||||
static map<std::string, std::shared_ptr<std::string const>> sharedSourceNames;
|
||||
static std::map<std::string, std::shared_ptr<std::string const>> sharedSourceNames;
|
||||
if (sharedSourceNames.find(_sourceList[static_cast<size_t>(srcIndex)]) == sharedSourceNames.end())
|
||||
sharedSourceNames[_sourceList[static_cast<size_t>(srcIndex)]] = std::make_shared<std::string>(_sourceList[static_cast<size_t>(srcIndex)]);
|
||||
location.sourceName = sharedSourceNames[_sourceList[static_cast<size_t>(srcIndex)]];
|
||||
@ -492,8 +492,8 @@ Json::Value Assembly::assemblyJSON(std::vector<std::string> const& _sources, boo
|
||||
|
||||
for (size_t i = 0; i < m_subs.size(); ++i)
|
||||
{
|
||||
stringstream hexStr;
|
||||
hexStr << hex << i;
|
||||
std::stringstream hexStr;
|
||||
hexStr << std::hex << i;
|
||||
data[hexStr.str()] = m_subs[i]->assemblyJSON(_sources, false);
|
||||
data[hexStr.str()]["index"] = static_cast<int>(i);
|
||||
}
|
||||
@ -505,10 +505,10 @@ Json::Value Assembly::assemblyJSON(std::vector<std::string> const& _sources, boo
|
||||
return root;
|
||||
}
|
||||
|
||||
std::pair<std::shared_ptr<Assembly>, std::vector<std::string>> Assembly::fromJSON(Json::Value const& _json, vector<string> const& _sourceList, int _level)
|
||||
std::pair<std::shared_ptr<Assembly>, std::vector<std::string>> Assembly::fromJSON(Json::Value const& _json, std::vector<std::string> const& _sourceList, int _level)
|
||||
{
|
||||
solRequire(_json.isObject(), AssemblyImportException, "Supplied JSON is not an object.");
|
||||
static set<string> const validMembers{".code", ".data", ".auxdata", "sourceList", "index"};
|
||||
static std::set<std::string> const validMembers{".code", ".data", ".auxdata", "sourceList", "index"};
|
||||
for (auto const& attribute: _json.getMemberNames())
|
||||
solRequire(validMembers.count(attribute), AssemblyImportException, "Unknown attribute '" + attribute + "'.");
|
||||
solRequire(_json.isMember(".code"), AssemblyImportException, "Member '.code' does not exist.");
|
||||
@ -531,8 +531,8 @@ std::pair<std::shared_ptr<Assembly>, std::vector<std::string>> Assembly::fromJSO
|
||||
"Member 'sourceList' is only allowed in root JSON object."
|
||||
);
|
||||
|
||||
shared_ptr<Assembly> result = make_shared<Assembly>(langutil::EVMVersion(), _level == 0, "");
|
||||
vector<string> sourceList;
|
||||
std::shared_ptr<Assembly> result = std::make_shared<Assembly>(langutil::EVMVersion(), _level == 0, "");
|
||||
std::vector<std::string> sourceList;
|
||||
if (_json.isMember("sourceList"))
|
||||
{
|
||||
solAssert(_level == 0);
|
||||
@ -564,7 +564,7 @@ std::pair<std::shared_ptr<Assembly>, std::vector<std::string>> Assembly::fromJSO
|
||||
for (Json::ValueConstIterator dataIter = data.begin(); dataIter != data.end(); dataIter++)
|
||||
{
|
||||
solRequire(dataIter.key().isString(), AssemblyImportException, "Key inside '.data' is not of type string.");
|
||||
string dataItemID = dataIter.key().asString();
|
||||
std::string dataItemID = dataIter.key().asString();
|
||||
Json::Value const& code = data[dataItemID];
|
||||
if (code.isString())
|
||||
{
|
||||
@ -584,7 +584,7 @@ std::pair<std::shared_ptr<Assembly>, std::vector<std::string>> Assembly::fromJSO
|
||||
size_t index = static_cast<size_t>(code["index"].asInt());
|
||||
if (result->m_subs.size() <= index)
|
||||
result->m_subs.resize(index + 1);
|
||||
shared_ptr<Assembly> subassembly(Assembly::fromJSON(code, sourceList, _level + 1).first);
|
||||
std::shared_ptr<Assembly> subassembly(Assembly::fromJSON(code, sourceList, _level + 1).first);
|
||||
solAssert(subassembly);
|
||||
result->m_subs[index] = subassembly;
|
||||
}
|
||||
@ -629,7 +629,7 @@ void Assembly::updatePaths(std::vector<Assembly*> const& _parents, std::vector<s
|
||||
}
|
||||
}
|
||||
|
||||
AssemblyItem Assembly::namedTag(string const& _name, size_t _params, size_t _returns, optional<uint64_t> _sourceID)
|
||||
AssemblyItem Assembly::namedTag(std::string const& _name, size_t _params, size_t _returns, std::optional<uint64_t> _sourceID)
|
||||
{
|
||||
assertThrow(!_name.empty(), AssemblyException, "Empty named tag.");
|
||||
if (m_namedTags.count(_name))
|
||||
|
@ -247,7 +247,7 @@ std::string AssemblyItem::getJumpTypeAsString() const
|
||||
}
|
||||
}
|
||||
|
||||
void AssemblyItem::setJumpType(string const& _jumpType)
|
||||
void AssemblyItem::setJumpType(std::string const& _jumpType)
|
||||
{
|
||||
if (_jumpType == "[in]")
|
||||
m_jumpType = JumpType::IntoFunction;
|
||||
|
@ -25,12 +25,11 @@
|
||||
using namespace solidity::util;
|
||||
using namespace solidity::langutil;
|
||||
using namespace solidity::frontend;
|
||||
using namespace std;
|
||||
|
||||
namespace solidity::evmasm
|
||||
{
|
||||
|
||||
void EVMAssemblyStack::parseAndAnalyze(string const& _sourceName, string const& _source)
|
||||
void EVMAssemblyStack::parseAndAnalyze(std::string const& _sourceName, std::string const& _source)
|
||||
{
|
||||
solAssert(!m_evmAssembly);
|
||||
m_name = _sourceName;
|
||||
@ -51,29 +50,29 @@ void EVMAssemblyStack::assemble()
|
||||
m_sourceMapping = AssemblyItem::computeSourceMapping(m_evmAssembly->items(), sourceIndices());
|
||||
if (m_evmAssembly->numSubs() > 0)
|
||||
{
|
||||
m_evmRuntimeAssembly = make_shared<evmasm::Assembly>(m_evmAssembly->sub(0));
|
||||
m_evmRuntimeAssembly = std::make_shared<evmasm::Assembly>(m_evmAssembly->sub(0));
|
||||
solAssert(m_evmRuntimeAssembly && !m_evmRuntimeAssembly->isCreation());
|
||||
m_runtimeSourceMapping = AssemblyItem::computeSourceMapping(m_evmRuntimeAssembly->items(), sourceIndices());
|
||||
m_runtimeObject = m_evmRuntimeAssembly->assemble();
|
||||
}
|
||||
}
|
||||
|
||||
LinkerObject const& EVMAssemblyStack::object(string const& _contractName) const
|
||||
LinkerObject const& EVMAssemblyStack::object(std::string const& _contractName) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
return m_object;
|
||||
}
|
||||
|
||||
LinkerObject const& EVMAssemblyStack::runtimeObject(string const& _contractName) const
|
||||
LinkerObject const& EVMAssemblyStack::runtimeObject(std::string const& _contractName) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
return m_runtimeObject;
|
||||
}
|
||||
|
||||
map<string, unsigned> EVMAssemblyStack::sourceIndices() const
|
||||
std::map<std::string, unsigned> EVMAssemblyStack::sourceIndices() const
|
||||
{
|
||||
solAssert(m_evmAssembly);
|
||||
map<string, unsigned> indices;
|
||||
std::map<std::string, unsigned> indices;
|
||||
unsigned index = 0;
|
||||
for (auto const& s: m_sourceList)
|
||||
if (s != CompilerContext::yulUtilityFileName())
|
||||
@ -84,42 +83,42 @@ map<string, unsigned> EVMAssemblyStack::sourceIndices() const
|
||||
return indices;
|
||||
}
|
||||
|
||||
string const* EVMAssemblyStack::sourceMapping(string const& _contractName) const
|
||||
std::string const* EVMAssemblyStack::sourceMapping(std::string const& _contractName) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
return &m_sourceMapping;
|
||||
}
|
||||
|
||||
string const* EVMAssemblyStack::runtimeSourceMapping(string const& _contractName) const
|
||||
std::string const* EVMAssemblyStack::runtimeSourceMapping(std::string const& _contractName) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
return &m_runtimeSourceMapping;
|
||||
}
|
||||
|
||||
Json::Value EVMAssemblyStack::assemblyJSON(string const& _contractName) const
|
||||
Json::Value EVMAssemblyStack::assemblyJSON(std::string const& _contractName) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
solAssert(m_evmAssembly);
|
||||
vector<string> sources = sourceNames();
|
||||
std::vector<std::string> sources = sourceNames();
|
||||
if (find(sources.begin(), sources.end(), CompilerContext::yulUtilityFileName()) == sources.end())
|
||||
sources.emplace_back(CompilerContext::yulUtilityFileName());
|
||||
return m_evmAssembly->assemblyJSON(sources);
|
||||
}
|
||||
|
||||
string EVMAssemblyStack::assemblyString(string const& _contractName, StringMap const& _sourceCodes) const
|
||||
std::string EVMAssemblyStack::assemblyString(std::string const& _contractName, StringMap const& _sourceCodes) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
solAssert(m_evmAssembly);
|
||||
return m_evmAssembly->assemblyString(m_debugInfoSelection, _sourceCodes);
|
||||
}
|
||||
|
||||
string const EVMAssemblyStack::filesystemFriendlyName(string const& _contractName) const
|
||||
std::string const EVMAssemblyStack::filesystemFriendlyName(std::string const& _contractName) const
|
||||
{
|
||||
solAssert(_contractName == m_name);
|
||||
return m_name;
|
||||
}
|
||||
|
||||
vector<string> EVMAssemblyStack::sourceNames() const
|
||||
std::vector<std::string> EVMAssemblyStack::sourceNames() const
|
||||
{
|
||||
return m_sourceList;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user