aboutsummaryrefslogtreecommitdiffstats
path: root/SolidityTypes.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-03-20 19:54:36 +0800
committerchriseth <c@ethdev.com>2015-03-20 19:54:36 +0800
commitff06ea3aafba6292af797eb5d08d80a97d65ede7 (patch)
treef7b0f74c8462de709fd81dadb5654a8dde45c7ce /SolidityTypes.cpp
parentd43bc09994be67721e55b6be490586f025172b4c (diff)
parent0816a59b7e0f0be03e790273e463ca3a65efb5bf (diff)
downloaddexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar
dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.gz
dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.bz2
dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.lz
dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.xz
dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.tar.zst
dexon-solidity-ff06ea3aafba6292af797eb5d08d80a97d65ede7.zip
Merge pull request #1341 from chriseth/sol_packedStorage
Packed storage for arrays.
Diffstat (limited to 'SolidityTypes.cpp')
-rw-r--r--SolidityTypes.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/SolidityTypes.cpp b/SolidityTypes.cpp
index 8defd1d8..6b630647 100644
--- a/SolidityTypes.cpp
+++ b/SolidityTypes.cpp
@@ -75,6 +75,17 @@ BOOST_AUTO_TEST_CASE(storage_layout_mapping)
BOOST_CHECK(*members.getMemberStorageOffset("final") == make_pair(u256(3), unsigned(0)));
}
+BOOST_AUTO_TEST_CASE(storage_layout_arrays)
+{
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(1), 32).getStorageSize() == 1);
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(1), 33).getStorageSize() == 2);
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(2), 31).getStorageSize() == 2);
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(7), 8).getStorageSize() == 2);
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(7), 9).getStorageSize() == 3);
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(31), 9).getStorageSize() == 9);
+ BOOST_CHECK(ArrayType(ArrayType::Location::Storage, make_shared<FixedBytesType>(32), 9).getStorageSize() == 9);
+}
+
BOOST_AUTO_TEST_SUITE_END()
}