diff options
Diffstat (limited to 'src/postamble.js')
-rw-r--r-- | src/postamble.js | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/postamble.js b/src/postamble.js index 365f77d0..a4c43018 100644 --- a/src/postamble.js +++ b/src/postamble.js @@ -122,18 +122,24 @@ onmessage = function(msg) { var func = Module['_' + msg.data['funcName']]; if (!func) throw 'invalid worker function to call: ' + msg.data['funcName']; var data = msg.data['data']; - if (!data.byteLength) data = new Uint8Array(data); - if (!buffer || bufferSize < data.length) { - if (buffer) _free(buffer); - bufferSize = data.length; - buffer = _malloc(data.length); + if (data) { + if (!data.byteLength) data = new Uint8Array(data); + if (!buffer || bufferSize < data.length) { + if (buffer) _free(buffer); + bufferSize = data.length; + buffer = _malloc(data.length); + } + HEAPU8.set(data, buffer); } - HEAPU8.set(data, buffer); inWorkerCall = true; workerResponded = false; workerCallbackId = msg.data['callbackId']; - func(buffer, data.length); + if (data) { + func(buffer, data.length); + } else { + func(0, 0); + } inWorkerCall = false; } |