Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit fe10be2

Browse files
committed
Remove redundant checks in gas calculations
1 parent b2ba99a commit fe10be2

File tree

1 file changed

+6
-13
lines changed
  • ethereumj-core/src/main/java/org/ethereum/vm

1 file changed

+6
-13
lines changed

ethereumj-core/src/main/java/org/ethereum/vm/VM.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,8 @@ else if (!currentValue.isZero() && newValue.isZero()) {
320320
break;
321321
case SHA3:
322322
gasCost = gasCosts.getSHA3() + calcMemGas(gasCosts, oldMemSize, memNeeded(stack.peek(), stack.get(stack.size() - 2)), 0);
323-
long size = stack.get(stack.size() - 2).longValueSafe();
324-
if (size == Long.MAX_VALUE) {
325-
throw Program.Exception.gasOverflow(BigInteger.valueOf(size), BigInteger.valueOf(Long.MAX_VALUE));
326-
}
327-
long chunkUsed = getSizeInWords(size);
323+
DataWord size = stack.get(stack.size() - 2);
324+
long chunkUsed = getSizeInWords(size.longValueSafe());
328325
gasCost += chunkUsed * gasCosts.getSHA3_WORD();
329326
break;
330327
case CALLDATACOPY:
@@ -398,14 +395,10 @@ else if (!currentValue.isZero() && newValue.isZero()) {
398395
memNeeded(stack.get(stack.size() - 2), stack.get(stack.size() - 3)), 0);
399396
break;
400397
case CREATE2:
401-
gasCost = gasCosts.getCREATE() + calcMemGas(gasCosts, oldMemSize,
402-
memNeeded(stack.get(stack.size() - 2), stack.get(stack.size() - 3)), 0);
403-
long codeSize = stack.get(stack.size() - 3).longValueSafe();
404-
if (codeSize == Long.MAX_VALUE) {
405-
throw Program.Exception.gasOverflow(BigInteger.valueOf(codeSize), BigInteger.valueOf(Long.MAX_VALUE));
406-
}
407-
gasCost += getSizeInWords(codeSize) * gasCosts.getSHA3_WORD();
408-
398+
DataWord codeSize = stack.get(stack.size() - 3);
399+
gasCost = gasCosts.getCREATE() +
400+
calcMemGas(gasCosts, oldMemSize, memNeeded(stack.get(stack.size() - 2), codeSize), 0) +
401+
getSizeInWords(codeSize.longValueSafe()) * gasCosts.getSHA3_WORD();
409402
break;
410403
case LOG0:
411404
case LOG1:

0 commit comments

Comments
 (0)