aboutsummaryrefslogtreecommitdiffstats
path: root/Types.h
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2015-02-15 09:00:33 +0800
committerChristian <c@ethdev.com>2015-02-17 02:25:27 +0800
commit971cc9b5b9242f36c1fa288615e2bf2d762fbd52 (patch)
tree100c83123364475d95e5331750578d2ce2602dc7 /Types.h
parentd630a67812900036ba4aa7bfd47f07c7adddb247 (diff)
downloaddexon-solidity-971cc9b5b9242f36c1fa288615e2bf2d762fbd52.tar.gz
dexon-solidity-971cc9b5b9242f36c1fa288615e2bf2d762fbd52.tar.zst
dexon-solidity-971cc9b5b9242f36c1fa288615e2bf2d762fbd52.zip
Unpacking of dynamically sized arguments.
Diffstat (limited to 'Types.h')
-rw-r--r--Types.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/Types.h b/Types.h
index 3b4eee57..90812f56 100644
--- a/Types.h
+++ b/Types.h
@@ -122,6 +122,8 @@ public:
/// is not a simple big-endian encoding or the type cannot be stored in calldata.
/// Note that irrespective of this size, each calldata element is padded to a multiple of 32 bytes.
virtual unsigned getCalldataEncodedSize() const { return 0; }
+ /// @returns true if the type is dynamically encoded in calldata
+ virtual bool isDynamicallySized() const { return false; }
/// @returns number of bytes required to hold this value in storage.
/// For dynamically "allocated" types, it returns the size of the statically allocated head,
virtual u256 getStorageSize() const { return 1; }
@@ -289,6 +291,7 @@ public:
virtual bool isImplicitlyConvertibleTo(Type const& _convertTo) const override;
virtual TypePointer unaryOperatorResult(Token::Value _operator) const override;
virtual bool operator==(const Type& _other) const override;
+ virtual bool isDynamicallySized() const { return true; }
virtual unsigned getSizeOnStack() const override;
virtual std::string toString() const override { return "bytes"; }
virtual MemberList const& getMembers() const override { return s_byteArrayMemberList; }