From e2ce483e0de62484f762e4e85b194fc4f228de44 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 20 Dec 2024 11:04:13 +0100 Subject: [BOX32][WRAPPER] Improved obstack handling --- src/libtools/obstack.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/libtools/obstack.c') diff --git a/src/libtools/obstack.c b/src/libtools/obstack.c index 3f923f8a..93d47fbf 100644 --- a/src/libtools/obstack.c +++ b/src/libtools/obstack.c @@ -224,7 +224,10 @@ EXPORT void my__obstack_newchunk(x64emu_t* emu, struct obstack* obstack, int s) #ifdef BOX32 EXPORT void my32__obstack_newchunk(x64emu_t* emu, struct obstack* obstack, int s) { - _obstack_newchunk(obstack, s); + struct obstack obstack_l = {0}; + convert_obstack_to_64(&obstack_l, obstack); + _obstack_newchunk(&obstack_l, s); + convert_obstack_to_32(obstack, &obstack_l); } #endif @@ -242,9 +245,12 @@ EXPORT int32_t my_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void* #ifdef BOX32 EXPORT int32_t my32_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void* fmt, void* b) { + struct obstack obstack_l = {0}; + convert_obstack_to_64(&obstack_l, obstack); myStackAlign32((const char*)fmt, b, emu->scratch); PREPARE_VALIST_32; - int r = obstack_vprintf(obstack, (const char*)fmt, VARARGS_32); + int r = obstack_vprintf(&obstack_l, (const char*)fmt, VARARGS_32); + convert_obstack_to_32(obstack, &obstack_l); return r; } #endif -- cgit 1.4.1