diff options
author | Christian <c@ethdev.com> | 2014-12-15 08:02:33 +0800 |
---|---|---|
committer | Christian <c@ethdev.com> | 2014-12-15 08:02:33 +0800 |
commit | 739192ae6591c18fdb22d6ef38485378134d247d (patch) | |
tree | c3ea122e0db53b1eda88f7e3a1972a815157a7e7 | |
parent | c0bba438b1d93b3ebba46e03935dbdf8b1ba6bd5 (diff) | |
download | dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.tar dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.tar.gz dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.tar.bz2 dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.tar.lz dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.tar.xz dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.tar.zst dexon-solidity-739192ae6591c18fdb22d6ef38485378134d247d.zip |
Correctly check for string prefix plus indentation change.
-rw-r--r-- | ExpressionCompiler.cpp | 2 | ||||
-rw-r--r-- | Types.cpp | 20 |
2 files changed, 13 insertions, 9 deletions
diff --git a/ExpressionCompiler.cpp b/ExpressionCompiler.cpp index add5f73b..f872e058 100644 --- a/ExpressionCompiler.cpp +++ b/ExpressionCompiler.cpp @@ -291,7 +291,7 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess) IntegerType(0, IntegerType::Modifier::ADDRESS), true); m_context << eth::Instruction::BALANCE; } - else if (member == "send" || member.substr(0, 4) == "call") + else if (member == "send" || member.substr(0, min<size_t>(member.size(), 4)) == "call") appendTypeConversion(*_memberAccess.getExpression().getType(), IntegerType(0, IntegerType::Modifier::ADDRESS), true); else @@ -193,14 +193,18 @@ u256 IntegerType::literalValue(Literal const& _literal) const } const MemberList IntegerType::AddressMemberList = - MemberList({{"balance", make_shared<IntegerType const>(256)}, - {"callstring32", make_shared<FunctionType const>(TypePointers({make_shared<StaticStringType const>(32)}), - TypePointers(), FunctionType::Location::BARE)}, - {"callstring32string32", make_shared<FunctionType const>(TypePointers({make_shared<StaticStringType const>(32), - make_shared<StaticStringType const>(32)}), - TypePointers(), FunctionType::Location::BARE)}, - {"send", make_shared<FunctionType const>(TypePointers({make_shared<IntegerType const>(256)}), - TypePointers(), FunctionType::Location::SEND)}}); + MemberList({{"balance", + make_shared<IntegerType const>(256)}, + {"callstring32", + make_shared<FunctionType const>(TypePointers({make_shared<StaticStringType const>(32)}), + TypePointers(), FunctionType::Location::BARE)}, + {"callstring32string32", + make_shared<FunctionType const>(TypePointers({make_shared<StaticStringType const>(32), + make_shared<StaticStringType const>(32)}), + TypePointers(), FunctionType::Location::BARE)}, + {"send", + make_shared<FunctionType const>(TypePointers({make_shared<IntegerType const>(256)}), + TypePointers(), FunctionType::Location::SEND)}}); shared_ptr<StaticStringType> StaticStringType::smallestTypeForLiteral(string const& _literal) { |