From dcfc24c100e349459276fafddbffe2c5a0a84f58 Mon Sep 17 00:00:00 2001 From: Echo J Date: Fri, 3 Apr 2026 14:53:36 +0300 Subject: [PATCH] Emscripten: Cast pointer arguments to pointer-sized integers For some reason, 64-bit pointer arguments are casted to Numbers in Emscripten's type handling (which causes conversion errors when passing them back to native code) --- miniaudio.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/miniaudio.h b/miniaudio.h index 0e2f9573..694b73c1 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -42101,7 +42101,7 @@ static ma_result ma_device_init__webaudio(ma_device* pDevice, const ma_device_co state: 1, /* 1 = ma_device_state_stopped */ pDevice: $1 }); - }, pDevice->webaudio.audioContext, pDevice); + }, pDevice->webaudio.audioContext, (ma_uintptr)pDevice); return MA_SUCCESS; } @@ -42182,7 +42182,7 @@ static ma_result ma_device_init__webaudio(ma_device* pDevice, const ma_device_co /* The node processing callback. */ device.scriptNode.onaudioprocess = function(e) { if (device.intermediaryBufferView == null || device.intermediaryBufferView.length == 0) { - device.intermediaryBufferView = new Float32Array(HEAPF32.buffer, pIntermediaryBuffer, bufferSize * channels); + device.intermediaryBufferView = new Float32Array(HEAPF32.buffer, Number(pIntermediaryBuffer), bufferSize * channels); } /* Do the capture side first. */ @@ -42239,7 +42239,7 @@ static ma_result ma_device_init__webaudio(ma_device* pDevice, const ma_device_co device.pDevice = pDevice; return window.miniaudio.track_device(device); - }, pConfig->deviceType, channels, sampleRate, periodSizeInFrames, pDevice->webaudio.pIntermediaryBuffer, pDevice); + }, pConfig->deviceType, channels, sampleRate, periodSizeInFrames, (ma_uintptr)pDevice->webaudio.pIntermediaryBuffer, (ma_uintptr)pDevice); if (deviceIndex < 0) { return MA_FAILED_TO_OPEN_BACKEND_DEVICE;