git ssb

0+

wanderer🌟 / js-primea-hypervisor



Commit efd8e0e89ceeb6cd303b56c917ef63c8e68da7ca

only check `length` where lenght could be 0

wanderer committed on 9/4/2016, 5:07:00 PM
Parent: d0e498dbd1d35572564b7372af00a0542f585684

Files changed

interface.jschanged
interface.jsView
@@ -163,10 +163,12 @@
163163 */
164164 callDataCopy (offset, dataOffset, length) {
165165 this.takeGas(3 + Math.ceil(length / 32) * 3)
166166
167- const callData = this.environment.callData.slice(dataOffset, dataOffset + length)
168- this.setMemory(offset, length, callData)
167+ if (length) {
168+ const callData = this.environment.callData.slice(dataOffset, dataOffset + length)
169+ this.setMemory(offset, length, callData)
170+ }
169171 }
170172
171173 /**
172174 * Copys the input data in current environment to memory. This pertains to
@@ -198,10 +200,12 @@
198200 */
199201 codeCopy (resultOffset, codeOffset, length) {
200202 this.takeGas(3 + Math.ceil(length / 32) * 3)
201203
202- const code = this.environment.code.slice(codeOffset, codeOffset + length)
203- this.setMemory(resultOffset, length, code)
204+ if (length) {
205+ const code = this.environment.code.slice(codeOffset, codeOffset + length)
206+ this.setMemory(resultOffset, length, code)
207+ }
204208 }
205209
206210 /**
207211 * Get size of an account’s code.
@@ -225,12 +229,14 @@
225229 */
226230 externalCodeCopy (addressOffset, resultOffset, codeOffset, length) {
227231 this.takeGas(20 + Math.ceil(length / 32) * 3)
228232
229- const address = Address.fromMemory(this.getMemory(addressOffset, ADDRESS_SIZE_BYTES))
230- let code = this.environment.getCode(address)
231- code = code.slice(codeOffset, codeOffset + length)
232- this.setMemory(resultOffset, length, code)
233+ if (length) {
234+ const address = Address.fromMemory(this.getMemory(addressOffset, ADDRESS_SIZE_BYTES))
235+ let code = this.environment.getCode(address)
236+ code = code.slice(codeOffset, codeOffset + length)
237+ this.setMemory(resultOffset, length, code)
238+ }
233239 }
234240
235241 /**
236242 * Gets price of gas in current environment.
@@ -515,12 +521,10 @@
515521 return new Uint8Array(this.module.exports.memory, offset, length)
516522 }
517523
518524 setMemory (offset, length, value) {
519- if (value.length) {
520- const memory = new Uint8Array(this.module.exports.memory, offset, length)
521- memory.set(value)
522- }
525+ const memory = new Uint8Array(this.module.exports.memory, offset, length)
526+ memory.set(value)
523527 }
524528
525529 /*
526530 * Takes gas from the tank. Only needs to check if there's gas left to be taken,

Built with git-ssb-web