diff --git a/binding-sandbox/binding-util.cpp b/binding-sandbox/binding-util.cpp index d13ae71f..9900700e 100644 --- a/binding-sandbox/binding-util.cpp +++ b/binding-sandbox/binding-util.cpp @@ -33,7 +33,6 @@ void mkxp_sandbox::set_private_data(VALUE obj, void *ptr) { // Free the old value if it already exists (initialize called twice?) if (*(wasm_ptr_t *)(**sb() + data) != 0 && *(void **)(**sb() + *(wasm_ptr_t *)(**sb() + data)) != ptr) { sb()->rtypeddata_dfree(obj, *(wasm_ptr_t *)(**sb() + data)); - sb()->sandbox_free(*(wasm_ptr_t *)(**sb() + data)); *(wasm_ptr_t *)(**sb() + data) = 0; } diff --git a/binding-sandbox/binding-util.h b/binding-sandbox/binding-util.h index 6546a9df..5ce6d830 100644 --- a/binding-sandbox/binding-util.h +++ b/binding-sandbox/binding-util.h @@ -59,6 +59,7 @@ #define SANDBOX_DEF_DFREE(T) \ static void dfree(wasm_ptr_t _buf) { \ delete *(T **)(**mkxp_sandbox::sb() + _buf); \ + mkxp_sandbox::sb()->sandbox_free(_buf); \ } #define SANDBOX_DEF_LOAD(T) \