mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-11 16:26:20 +00:00
Enable address sanitizer
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
CODEC_URL = https://github.com/AOMediaCodec/libavif/archive/v0.8.0.tar.gz
|
||||
CODEC_URL = https://github.com/AOMediaCodec/libavif/archive/v0.8.0.tar.gz
|
||||
CODEC_DIR = node_modules/libavif
|
||||
CODEC_BUILD_DIR := $(CODEC_DIR)/build
|
||||
CODEC_OUT := $(CODEC_BUILD_DIR)/libavif.a
|
||||
@@ -22,9 +22,13 @@ all: $(OUT_JS)
|
||||
${LDFLAGS} \
|
||||
--bind \
|
||||
--closure 1 \
|
||||
-g2 \
|
||||
-fsanitize=address \
|
||||
-s ASAN_SHADOW_SIZE=1074790400 \
|
||||
-s ASSERTIONS=1 \
|
||||
-s ALLOW_MEMORY_GROWTH=1 \
|
||||
-s MODULARIZE=1 \
|
||||
-s 'EXPORT_NAME="$(basename $(@F))"' \
|
||||
-s 'EXPORT_NAME="$(basename $(@F))"' \
|
||||
-o $@ \
|
||||
$+
|
||||
|
||||
@@ -33,7 +37,7 @@ $(CODEC_OUT): $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_OUT)
|
||||
cd $(CODEC_BUILD_DIR) && \
|
||||
emcmake cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=0 \
|
||||
-DBUILD_SHARED_LIBS=0 \
|
||||
-DAVIF_CODEC_AOM=1 \
|
||||
-DAVIF_LOCAL_AOM=1 \
|
||||
../ && \
|
||||
@@ -49,7 +53,7 @@ $(LIBAOM_OUT): $(LIBAOM_DIR)/CMakeLists.txt
|
||||
-DENABLE_DOCS=0 \
|
||||
-DENABLE_TESTS=0 \
|
||||
-DENABLE_EXAMPLES=0 \
|
||||
-DENABLE_TOOLS=0 \
|
||||
-DENABLE_TOOLS=0 \
|
||||
-DCONFIG_ACCOUNTING=1 \
|
||||
-DCONFIG_INSPECTION=0 \
|
||||
-DCONFIG_MULTITHREAD=0 \
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#include <sanitizer/lsan_interface.h>
|
||||
|
||||
#include <emscripten/bind.h>
|
||||
#include <emscripten/val.h>
|
||||
#include "avif/avif.h"
|
||||
@@ -47,4 +49,5 @@ val decode(std::string avifimage) {
|
||||
|
||||
EMSCRIPTEN_BINDINGS(my_module) {
|
||||
function("decode", &decode);
|
||||
function("doLeakCheck", &__lsan_do_recoverable_leak_check);
|
||||
}
|
||||
|
||||
1
codecs/avif/dec/avif_dec.d.ts
vendored
1
codecs/avif/dec/avif_dec.d.ts
vendored
@@ -1,5 +1,6 @@
|
||||
interface AVIFModule extends EmscriptenWasm.Module {
|
||||
decode(data: BufferSource): ImageData | null;
|
||||
doLeakCheck(): void;
|
||||
}
|
||||
|
||||
export default function(opts: EmscriptenWasm.ModuleOpts): AVIFModule;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,3 +1,5 @@
|
||||
#include <sanitizer/lsan_interface.h>
|
||||
|
||||
#include <emscripten/bind.h>
|
||||
#include <emscripten/val.h>
|
||||
#include "avif/avif.h"
|
||||
@@ -81,4 +83,5 @@ EMSCRIPTEN_BINDINGS(my_module) {
|
||||
.field("subsample", &AvifOptions::subsample);
|
||||
|
||||
function("encode", &encode);
|
||||
function("doLeakCheck", &__lsan_do_recoverable_leak_check);
|
||||
}
|
||||
|
||||
1
codecs/avif/enc/avif_enc.d.ts
vendored
1
codecs/avif/enc/avif_enc.d.ts
vendored
@@ -2,6 +2,7 @@ import { EncodeOptions } from '../../../src/codecs/avif/encoder-meta';
|
||||
|
||||
interface AVIFModule extends EmscriptenWasm.Module {
|
||||
encode(data: BufferSource, width: number, height: number, options: EncodeOptions): Uint8Array | null;
|
||||
doLeakCheck(): void;
|
||||
}
|
||||
|
||||
export default function(opts: EmscriptenWasm.ModuleOpts): AVIFModule;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Reference in New Issue
Block a user