Skip to content

Commit 0f753ce

Browse files
committed
change for loop in string and bytes to mcopy
1 parent 9a38d87 commit 0f753ce

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

src/ReadCbor.sol

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,9 @@ library ReadCbor {
349349

350350
ret = new string(len);
351351
assembly ("memory-safe") {
352-
for { let j := 0 } lt(j, len) { j := add(j, 0x20) } {
353-
mstore(add(ret, add(0x20, j)), mload(add(cbor, add(i, add(0x20, j)))))
354-
}
352+
let src := add(cbor, add(0x20, i))
353+
let dest := add(ret, 0x20)
354+
mcopy(dest, src, len)
355355
}
356356

357357
return (requireRange(cbor, i + len), ret);
@@ -434,15 +434,11 @@ library ReadCbor {
434434
uint32 len;
435435
(i, len) = header32(cbor, i, MajorBytes);
436436

437-
bytes memory bor = cbor;
438-
uint s = i;
439-
440437
ret = new bytes(len);
441438
assembly ("memory-safe") {
442-
for { let j := 0 } lt(j, len) { j := add(j, 0x20) } {
443-
mstore(add(ret, add(0x20, j)), mload(add(bor, add(0x20, s))))
444-
s := add(s, 0x20)
445-
}
439+
let src := add(cbor, add(0x20, i))
440+
let dest := add(ret, 0x20)
441+
mcopy(dest, src, len)
446442
}
447443

448444
return (requireRange(cbor, i + len), ret);

0 commit comments

Comments
 (0)