diff --git a/src/video/emscripten/SDL_emscriptenvideo.c b/src/video/emscripten/SDL_emscriptenvideo.c index e2b6a56854883..e7fd9d42fae85 100644 --- a/src/video/emscripten/SDL_emscriptenvideo.c +++ b/src/video/emscripten/SDL_emscriptenvideo.c @@ -812,6 +812,11 @@ static bool Emscripten_SetWindowIcon(SDL_VideoDevice *_this, SDL_Window *window, // Pass PNG data to JavaScript MAIN_THREAD_EM_ASM({ var pngData = HEAPU8.subarray($0, $0 + $1); + if (pngData.buffer instanceof SharedArrayBuffer) { + // explicitly create a copy + pngData = new Uint8Array(pngData); + } + var blob = new Blob([pngData], {type: 'image/png'}); var url = URL.createObjectURL(blob);