Fix memory leak in dfree implementation in libretro builds

This commit is contained in:
刘皓 2025-04-20 17:48:19 -04:00
parent 23affbe96f
commit c32073d200
No known key found for this signature in database
GPG key ID: 7901753DB465B711
2 changed files with 1 additions and 1 deletions

View file

@ -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;
}

View file

@ -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) \