aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol
diff options
context:
space:
mode:
authorF. Eugene Aumson <gene@aumson.org>2018-08-31 21:22:05 +0800
committerF. Eugene Aumson <gene@aumson.org>2018-08-31 21:22:05 +0800
commit72419816a88d6afcf8727cefe69e3a2fbe479f55 (patch)
tree076252c005a879c4ea122d467348d1097e41a574 /packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol
parent9a4e6da02f606e97b470a6545b2ce5baf14b03e6 (diff)
parent675964dc5c6c44eb07023fd036857ecd3f14dcf3 (diff)
downloaddexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar
dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.gz
dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.bz2
dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.lz
dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.xz
dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.zst
dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.zip
Merge remote-tracking branch 'upstream/development' into sol-doc
Diffstat (limited to 'packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol')
-rw-r--r--packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol7
1 files changed, 6 insertions, 1 deletions
diff --git a/packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol b/packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol
index 504e950a8..93873cbcc 100644
--- a/packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol
+++ b/packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol
@@ -467,8 +467,13 @@ library LibBytes {
b.length >= index + 4,
"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED"
);
+
+ // Arrays are prefixed by a 32 byte length field
+ index += 32;
+
+ // Read the bytes4 from array memory
assembly {
- result := mload(add(b, 32))
+ result := mload(add(b, index))
// Solidity does not require us to clean the trailing bytes.
// We do it anyway
result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)