about summary refs log tree commit diff stats
path: root/src/wrapped/wrappedgobject2.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-09-26 12:06:01 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-09-26 12:06:01 +0200
commit783e9a4b7442506765fe9687d006e0cd17c3c2f1 (patch)
tree8f29384177f4fa05f02bdb8c52bbc84d561bc5b3 /src/wrapped/wrappedgobject2.c
parent202a067a6177e4a9d6b31e1089cd81368ae9d4b3 (diff)
downloadbox64-783e9a4b7442506765fe9687d006e0cd17c3c2f1.tar.gz
box64-783e9a4b7442506765fe9687d006e0cd17c3c2f1.zip
More untested support for loongarch64 va_list
Diffstat (limited to 'src/wrapped/wrappedgobject2.c')
-rwxr-xr-xsrc/wrapped/wrappedgobject2.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/wrapped/wrappedgobject2.c b/src/wrapped/wrappedgobject2.c
index 42ff5099..31b85938 100755
--- a/src/wrapped/wrappedgobject2.c
+++ b/src/wrapped/wrappedgobject2.c
@@ -590,7 +590,11 @@ EXPORT uint32_t my_g_signal_new_valist(x64emu_t* emu, void* name, size_t itype,
     gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
 
     printf_log(LOG_DEBUG, "g_signal_new_valist for \"%s\", with %d args\n", (const char*)name, n);
+    #ifdef CONVERT_VALIST
     CONVERT_VALIST(b);
+    #else
+    CREATE_VALIST_FROM_VALIST(b, emu->scratch);
+    #endif
     return my->g_signal_new_valist(name, itype, flags, closure, findAccumulatorFct(acc), accu_data, findMarshalFct(marsh), rtype, n, VARARGS);
 }
 
@@ -648,7 +652,11 @@ EXPORT void* my_g_object_new(x64emu_t* emu, size_t type, void* first, void* b)
 EXPORT void* my_g_object_new_valist(x64emu_t* emu, size_t type, void* first, x64_va_list_t b)
 {
     gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
+    #ifdef CONVERT_VALIST
     CONVERT_VALIST(b);
+    #else
+    CREATE_VALIST_FROM_VALIST(b, emu->scratch);
+    #endif
     return my->g_object_new_valist(type, first, VARARGS);
 }
 
@@ -767,7 +775,11 @@ EXPORT void* my_g_type_class_peek_parent(x64emu_t* emu, void* object)
 EXPORT void my_g_signal_emit_valist(x64emu_t* emu, void* inst, uint32_t id, void* quark, x64_va_list_t b)
 {
     gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
+    #ifdef CONVERT_VALIST
     CONVERT_VALIST(b);
+    #else
+    CREATE_VALIST_FROM_VALIST(b, emu->scratch);
+    #endif
     my->g_signal_emit_valist(inst, id, quark, VARARGS);
 }
 
@@ -781,7 +793,11 @@ EXPORT void my_g_signal_emit(x64emu_t* emu, void* inst, uint32_t id, void* quark
 EXPORT void my_g_object_get_valist(x64emu_t* emu, void* a1, void* a2, x64_va_list_t b)
 {
     gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
+    #ifdef CONVERT_VALIST
     CONVERT_VALIST(b);
+    #else
+    CREATE_VALIST_FROM_VALIST(b, emu->scratch);
+    #endif
     my->g_object_get_valist(a1, a2, VARARGS);
 }
 
@@ -796,7 +812,11 @@ EXPORT void my_g_object_get(x64emu_t* emu, void* a1, void* a2, uintptr_t* b)
 EXPORT void my_g_object_set_valist(x64emu_t* emu, void* a1, void* a2, x64_va_list_t b)
 {
     gobject2_my_t *my = (gobject2_my_t*)my_lib->priv.w.p2;
+    #ifdef CONVERT_VALIST
     CONVERT_VALIST(b);
+    #else
+    CREATE_VALIST_FROM_VALIST(b, emu->scratch);
+    #endif
     my->g_object_set_valist(a1, a2, VARARGS);
 }