[quickjs] Fix function type mismatches
UBSan is finding function type mismatches for js_realloc_rt where the
first argument should be an opaque void* rather than a JSRuntime*. This
fixes some instances of function type mismatches to takea void*.
Bug: 127108
Change-Id: I0ca77dfc8021e9fda592b7950dc80e88f2d985ac
diff --git a/quickjs.c b/quickjs.c
index bb97be7..9ad1a90 100644
--- a/quickjs.c
+++ b/quickjs.c
@@ -1285,28 +1285,33 @@
return 0;
}
-void *js_malloc_rt(JSRuntime *rt, size_t size)
+void *js_malloc_rt(void *opaque, size_t size)
{
+ JSRuntime *rt = opaque;
return rt->mf.js_malloc(&rt->malloc_state, size);
}
-void js_free_rt(JSRuntime *rt, void *ptr)
+void js_free_rt(void *opaque, void *ptr)
{
+ JSRuntime *rt = opaque;
rt->mf.js_free(&rt->malloc_state, ptr);
}
-void *js_realloc_rt(JSRuntime *rt, void *ptr, size_t size)
+void *js_realloc_rt(void *opaque, void *ptr, size_t size)
{
+ JSRuntime *rt = opaque;
return rt->mf.js_realloc(&rt->malloc_state, ptr, size);
}
-size_t js_malloc_usable_size_rt(JSRuntime *rt, const void *ptr)
+size_t js_malloc_usable_size_rt(void *opaque, const void *ptr)
{
+ JSRuntime *rt = opaque;
return rt->mf.js_malloc_usable_size(ptr);
}
-void *js_mallocz_rt(JSRuntime *rt, size_t size)
+void *js_mallocz_rt(void *opaque, size_t size)
{
+ JSRuntime *rt = opaque;
void *ptr;
ptr = js_malloc_rt(rt, size);
if (!ptr)
diff --git a/quickjs.h b/quickjs.h
index 0fe18be..622061e 100644
--- a/quickjs.h
+++ b/quickjs.h
@@ -381,11 +381,11 @@
JSValue js_string_codePointRange(JSContext *ctx, JSValueConst this_val,
int argc, JSValueConst *argv);
-void *js_malloc_rt(JSRuntime *rt, size_t size);
-void js_free_rt(JSRuntime *rt, void *ptr);
-void *js_realloc_rt(JSRuntime *rt, void *ptr, size_t size);
-size_t js_malloc_usable_size_rt(JSRuntime *rt, const void *ptr);
-void *js_mallocz_rt(JSRuntime *rt, size_t size);
+void *js_malloc_rt(void *opaque, size_t size);
+void js_free_rt(void *opaque, void *ptr);
+void *js_realloc_rt(void *opaque, void *ptr, size_t size);
+size_t js_malloc_usable_size_rt(void *opaque, const void *ptr);
+void *js_mallocz_rt(void *opaque, size_t size);
void *js_malloc(JSContext *ctx, size_t size);
void js_free(JSContext *ctx, void *ptr);