From e62fc26dfdda35fcf4be2296c9a07a03c1eefe6e Mon Sep 17 00:00:00 2001 From: Surma Date: Wed, 23 May 2018 11:09:35 +0200 Subject: [PATCH] Properly enforce ArrayBuffers for codec results --- src/lib/codec-wrappers/codec.ts | 2 +- src/lib/codec-wrappers/mozjpeg-enc.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/codec-wrappers/codec.ts b/src/lib/codec-wrappers/codec.ts index c99ea3a1..d0e632fb 100644 --- a/src/lib/codec-wrappers/codec.ts +++ b/src/lib/codec-wrappers/codec.ts @@ -1,5 +1,5 @@ export interface Encoder { - encode(data: ImageData): Promise; + encode(data: ImageData): Promise; } export interface Decoder { diff --git a/src/lib/codec-wrappers/mozjpeg-enc.ts b/src/lib/codec-wrappers/mozjpeg-enc.ts index f39fdaa6..0971ca73 100644 --- a/src/lib/codec-wrappers/mozjpeg-enc.ts +++ b/src/lib/codec-wrappers/mozjpeg-enc.ts @@ -57,7 +57,7 @@ export class MozJpegEncoder implements Encoder { })(); } - async encode(data: ImageData): Promise { + async encode(data: ImageData): Promise { const m = await this.emscriptenModule; const api = await this.api; @@ -71,6 +71,7 @@ export class MozJpegEncoder implements Encoder { api.free_result(); api.destroy_buffer(p); - return result.buffer; + // wasm can’t run on SharedArrayBuffers, so we hard-cast to ArrayBuffer. + return result.buffer as ArrayBuffer; } }