diff --git a/src/browser/starter.js b/src/browser/starter.js index d991f773..e7c6d892 100644 --- a/src/browser/starter.js +++ b/src/browser/starter.js @@ -375,7 +375,8 @@ function V86Starter(options) { if(settings.initial_state) { - settings.no_initial_alloc = true; + // avoid large allocation now, memory will be restored later anyway + settings.memory_size = 0; } this.bus.send("cpu-init", settings); diff --git a/src/cpu.js b/src/cpu.js index 38172275..bf95d524 100644 --- a/src/cpu.js +++ b/src/cpu.js @@ -557,7 +557,7 @@ CPU.prototype.reset = function() }; /** @export */ -CPU.prototype.create_memory = function(size, no_alloc) +CPU.prototype.create_memory = function(size) { this.memory_size = size; @@ -566,27 +566,16 @@ CPU.prototype.create_memory = function(size, no_alloc) dbg_assert((size & MMAP_BLOCK_SIZE - 1) === 0); - if(no_alloc) - { - var buffer = new ArrayBuffer(0); + var buffer = new ArrayBuffer(size); - this.mem8 = new Uint8Array(buffer); - this.mem16 = new Uint16Array(buffer); - this.mem32s = new Int32Array(buffer); - } - else - { - var buffer = new ArrayBuffer(size); - - this.mem8 = new Uint8Array(buffer); - this.mem16 = new Uint16Array(buffer); - this.mem32s = new Int32Array(buffer); - } + this.mem8 = new Uint8Array(buffer); + this.mem16 = new Uint16Array(buffer); + this.mem32s = new Int32Array(buffer); }; CPU.prototype.init = function(settings, device_bus) { - this.create_memory(settings.memory_size || 1024 * 1024 * 64, settings.no_initial_alloc); + this.create_memory(settings.memory_size || 1024 * 1024 * 64); this.reset();