mmomtchev / swig

This is SWIG JavaScript Evolution, a fork of the SWIG project with modern JavaScript/TypeScript support including WASM and async
http://www.swig.org
Other
7 stars 0 forks source link

Returning an `ArrayBuffer` with length 0 does not work in WASM #33

Closed mmomtchev closed 4 months ago

mmomtchev commented 4 months ago
void return_zerolen_arraybuffer(void **arraybuffer_data, size_t *arraybuffer_len) {
  *arraybuffer_data = malloc(0);
  *arraybuffer_len = 0;
}

provokes

  if (!pointer) throw new Error("Unknown ArrayBuffer address");
                      ^

Error: Unknown ArrayBuffer address
    at emnapiSyncMemory (/home/mmom/src/swig/Examples/test-suite/javascript/napi_buffer/build/Release/napi_buffer:2008:23)
    at _emnapi_sync_memory (/home/mmom/src/swig/Examples/test-suite/javascript/napi_buffer/build/Release/napi_buffer:2060:13)
    at invoke_iiiiii (/home/mmom/src/swig/Examples/test-suite/javascript/napi_buffer/build/Release/napi_buffer:3824:34)
    at wasm://wasm/000b754e:wasm-function[112]:0x451d
    at invoke_vii (/home/mmom/src/swig/Examples/test-suite/javascript/napi_buffer/build/Release/napi_buffer:3747:27)
    at wasm://wasm/000b754e:wasm-function[160]:0xa89e
    at wasm://wasm/000b754e:wasm-function[127]:0x7895
    at /home/mmom/src/swig/Examples/test-suite/javascript/napi_buffer/build/Release/napi_buffer:2683:43
    at NodeEnv.callIntoModule (/usr/lib/node_modules/@emnapi/runtime/dist/emnapi.cjs.js:658:19)
    at Object.return_zerolen_arraybuffer (/home/mmom/src/swig/Examples/test-suite/javascript/napi_buffer/build/Release/napi_buffer:2682:22)
mmomtchev commented 4 months ago

Fixed by https://github.com/mmomtchev/swig/pull/34