Skip to content

Commit dbbfa66

Browse files
fix(load): only modify non-reserved slots (#4283)
1 parent d0bcd73 commit dbbfa66

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

tests/load/contracts/LoadSimulator.bindings.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/load/contracts/LoadSimulator.sol

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,15 @@ contract LoadSimulator {
8080
uint256 newValue
8181
) external returns (bool success) {
8282
assembly {
83-
let slotLimit := sload(latestEmptySlot.slot)
83+
let offset := 2
84+
let firstEmptySlot := sload(latestEmptySlot.slot)
85+
let numModifiedSlots := sub(firstEmptySlot, offset)
8486

85-
if lt(numSlots, add(slotLimit, 1)) {
87+
// if numModifiedSlots >= numSlots
88+
if not(lt(numModifiedSlots, numSlots)) {
8689
for {
87-
let i := 0
88-
} lt(i, numSlots) {
90+
let i := offset
91+
} lt(i, add(offset, numSlots)) {
8992
i := add(i, 1)
9093
} {
9194
sstore(i, newValue)

0 commit comments

Comments
 (0)