diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-02-02 16:39:01 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-02-02 16:39:01 +0100 |
| commit | 87b66b8db89a28b641553d9d471b3b9aab67d5f7 (patch) | |
| tree | 467ecfdd195f677ee2aecdfc6c8d6b1dd1be972e /src/libtools/obstack.c | |
| parent | a4ffa3de7ac52dd8acfd3df863095f1651f6d93b (diff) | |
| download | box64-87b66b8db89a28b641553d9d471b3b9aab67d5f7.tar.gz box64-87b66b8db89a28b641553d9d471b3b9aab67d5f7.zip | |
Don't wrap struct obstack, alignment should be the same (for #504)
Diffstat (limited to 'src/libtools/obstack.c')
| -rwxr-xr-x | src/libtools/obstack.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/libtools/obstack.c b/src/libtools/obstack.c index 3ebd770a..42b93569 100755 --- a/src/libtools/obstack.c +++ b/src/libtools/obstack.c @@ -107,7 +107,7 @@ static void* reverse_freefunFct(library_t* lib, void* fct) } #undef SUPER - +#if 0 struct i386_obstack { long chunk_size; @@ -160,7 +160,6 @@ void from_i386_obstack(struct i386_obstack *_i386, struct obstack *native) native->freefun = reverse_freefunFct(my_context->libclib, _i386->freefun); } #undef SUPER - EXPORT int my__obstack_begin(struct i386_obstack * obstack, size_t size, size_t alignment, void* chunkfun, void* freefun) { struct obstack native = {0}; @@ -201,6 +200,37 @@ EXPORT int32_t my_obstack_vprintf(x64emu_t* emu, struct i386_obstack* obstack, v to_i386_obstack(obstack, &native); //usefull?? return r; } +#else + +EXPORT int my__obstack_begin(struct obstack * obstack, size_t size, size_t alignment, void* chunkfun, void* freefun) +{ + int ret = _obstack_begin(obstack, size, alignment, findchunkfunFct(chunkfun), findfreefunFct(freefun)); + return ret; +} + +EXPORT void my_obstack_free(struct obstack * obstack, void* block) +{ + obstack_free(obstack, block); +} +EXPORT void my__obstack_free(struct obstack * obstack, void* block) __attribute__((alias("my_obstack_free"))); + +EXPORT void my__obstack_newchunk(x64emu_t* emu, struct obstack* obstack, int s) +{ + _obstack_newchunk(obstack, s); +} + +EXPORT int32_t my_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void* fmt, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + myStackAlignValist(emu, (const char*)fmt, emu->scratch, V); + PREPARE_VALIST; + #endif + int r = obstack_vprintf(obstack, (const char*)fmt, VARARGS); + return r; +} +#endif EXPORT void* my_obstack_alloc_failed_handler = NULL; void* ref_obstack_alloc_failed_handler = NULL; |