diff --git a/src/audio_worklet.js b/src/audio_worklet.js index 0e8de05f981b0..e427e4ee3519a 100644 --- a/src/audio_worklet.js +++ b/src/audio_worklet.js @@ -25,7 +25,7 @@ function createWasmAudioWorkletProcessor(audioParams) { assert(opts.callback) assert(opts.samplesPerChannel) #endif - this.callback = wasmTable.get(opts.callback); + this.callback = getWasmTableEntry(opts.callback); this.userData = opts.userData; // Then the samples per channel to process, fixed for the lifetime of the // context that created this processor. Note for when moving to Web Audio @@ -170,12 +170,7 @@ class BootstrapMessages extends AudioWorkletProcessor { // conflict with user messages messagePort.postMessage({'_wsc': d.callback, args: [d.contextHandle, 1/*EM_TRUE*/, d.userData] }); } else if (d['_wsc']) { -#if MEMORY64 - var ptr = BigInt(d['_wsc']); -#else - var ptr = d['_wsc']; -#endif - wasmTable.get(ptr)(...d.args); + getWasmTableEntry(d['_wsc'])(...d.args); }; } } diff --git a/src/lib/libwebaudio.js b/src/lib/libwebaudio.js index 19ba189006fca..f63d7ab237752 100644 --- a/src/lib/libwebaudio.js +++ b/src/lib/libwebaudio.js @@ -206,6 +206,7 @@ let LibraryWebAudio = { }).catch(audioWorkletCreationFailed); }, + $_EmAudioDispatchProcessorCallback__deps: ['$getWasmTableEntry'], $_EmAudioDispatchProcessorCallback: (e) => { let data = e.data; // '_wsc' is short for 'wasm call', trying to use an identifier name that diff --git a/tools/link.py b/tools/link.py index a19ed6b829c65..3ea4285d5985c 100644 --- a/tools/link.py +++ b/tools/link.py @@ -1421,6 +1421,7 @@ def limit_incoming_module_api(): if settings.AUDIO_WORKLET: add_system_js_lib('libwebaudio.js') + settings.DEFAULT_LIBRARY_FUNCS_TO_INCLUDE.append('$getWasmTableEntry') if not settings.MINIMAL_RUNTIME: if 'preRun' in settings.INCOMING_MODULE_JS_API: