about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
authorLeslie Zhai <zhaixiang@loongson.cn>2025-05-30 13:57:01 +0800
committerGitHub <noreply@github.com>2025-05-30 07:57:01 +0200
commit53bb00a769f3168a5663893981fccebecd7ff4d7 (patch)
tree01ea6f42507315d78012b0f08313a050ed12b8ae /src/wrapped
parent038e9511d1c35cfa3d6b25baae351ce78f58ef5d (diff)
downloadbox64-53bb00a769f3168a5663893981fccebecd7ff4d7.tar.gz
box64-53bb00a769f3168a5663893981fccebecd7ff4d7.zip
[WRAPPER] Implement myStackAlignGVariantNew for g_variant_new (#2687)
Diffstat (limited to 'src/wrapped')
-rw-r--r--src/wrapped/wrappedglib2.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c
index 7a24b5f4..d4f30fcf 100644
--- a/src/wrapped/wrappedglib2.c
+++ b/src/wrapped/wrappedglib2.c
@@ -1115,7 +1115,7 @@ EXPORT void* my_g_variant_new_va(x64emu_t* emu, char* fmt, void* endptr, x64_va_
     #else
       #if defined(__loongarch64) || defined(__riscv)
         va_list sysv_varargs;
-        myStackAlignGVariantNew(emu, fmt, emu->scratch, b);
+        myStackAlignGVariantNewVa(emu, fmt, emu->scratch, b);
         sysv_varargs = (va_list)emu->scratch;
       #else
         CREATE_VALIST_FROM_VALIST(*b, emu->scratch);
@@ -1126,7 +1126,12 @@ EXPORT void* my_g_variant_new_va(x64emu_t* emu, char* fmt, void* endptr, x64_va_
 
 EXPORT void* my_g_variant_new(x64emu_t* emu, char* fmt, uint64_t* V)
 {
+#if defined(__loongarch64) || defined(__riscv)
+    myStackAlignGVariantNew(emu, fmt, V, emu->scratch, R_EAX);
+    PREPARE_VALIST;
+#else
     CREATE_VALIST_FROM_VAARG(V, emu->scratch, 1);
+#endif
     return my->g_variant_new_va(fmt, NULL, &VARARGS);
 }