diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2024-11-16 04:37:36 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-15 21:37:36 +0100 |
| commit | 5ab8a6f6f4dd8cfce669963571f401e632f66769 (patch) | |
| tree | c9ac0577f7d48398e854a29a5461b8ac768b2586 /src/wrapped | |
| parent | 385a31ec1183eeed8ed357ab58bf5a6da582622c (diff) | |
| download | box64-5ab8a6f6f4dd8cfce669963571f401e632f66769.tar.gz box64-5ab8a6f6f4dd8cfce669963571f401e632f66769.zip | |
[WRAPPER] Fixed myStackAlignGVariantNew and refined the test too (#2038)
Diffstat (limited to 'src/wrapped')
| -rw-r--r-- | src/wrapped/wrappedglib2.c | 37 |
1 files changed, 3 insertions, 34 deletions
diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c index 3a481eff..0c8bd95b 100644 --- a/src/wrapped/wrappedglib2.c +++ b/src/wrapped/wrappedglib2.c @@ -1080,44 +1080,13 @@ 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; - uint64_t scratch[N_SCRATCH]; - myStackAlignGVariantNew(emu, fmt, scratch, b); - sysv_varargs = (va_list)scratch; + myStackAlignGVariantNew(emu, fmt, emu->scratch, b); + sysv_varargs = (va_list)emu->scratch; #else CREATE_VALIST_FROM_VALIST(*b, emu->scratch); #endif #endif - if (box64_log == LOG_DEBUG) { - printf_log(LOG_DEBUG, "fmt: %s\n", fmt); - const char* pfmt = fmt; - int i = 0; - while (*pfmt) { - switch (*pfmt) { - case 'b': - case 'y': - case 'n': - case 'q': - case 'i': - case 'h': - case 'u': - printf_log(LOG_DEBUG, "%2d: %d\n", i, va_arg(sysv_varargs, int)); - break; - case 'x': - case 't': - printf_log(LOG_DEBUG, "%2d: %ld\n", i, va_arg(sysv_varargs, long)); - break; - case 'd': - printf_log(LOG_DEBUG, "%2d: %f\n", i, va_arg(sysv_varargs, double)); - break; - default: - break; - } - pfmt++; - i++; - } - } - va_list* aligned = &sysv_varargs; - return my->g_variant_new_va(fmt, endptr, &aligned); + return my->g_variant_new_va(fmt, endptr, &sysv_varargs); } EXPORT void* my_g_variant_new(x64emu_t* emu, char* fmt, uint64_t* V) |