Skip to content

Commit 92bc7dd

Browse files
authored
fix: Fix premature collect of backing buffers in loader's __newArray
1 parent 7f6c51c commit 92bc7dd

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

lib/loader/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ function postInstantiate(extendedExports, instance) {
180180
if (info & STATICARRAY) {
181181
result = buf;
182182
} else {
183+
__pin(buf);
183184
const arr = __new(info & ARRAY ? ARRAY_SIZE : ARRAYBUFFERVIEW_SIZE, id);
185+
__unpin(buf);
184186
const U32 = new Uint32Array(memory.buffer);
185187
U32[arr + ARRAYBUFFERVIEW_BUFFER_OFFSET >>> 2] = buf;
186188
U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2] = buf;

lib/loader/umd/index.js

+4
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,12 @@ var loader = (function(exports) {
227227
if (info & STATICARRAY) {
228228
result = buf;
229229
} else {
230+
__pin(buf);
231+
230232
const arr = __new(info & ARRAY ? ARRAY_SIZE : ARRAYBUFFERVIEW_SIZE, id);
231233

234+
__unpin(buf);
235+
232236
const U32 = new Uint32Array(memory.buffer);
233237
U32[arr + ARRAYBUFFERVIEW_BUFFER_OFFSET >>> 2] = buf;
234238
U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2] = buf;

0 commit comments

Comments
 (0)