From da2773e02ab26cc11a7fe87e985599f35cdf0649 Mon Sep 17 00:00:00 2001 From: Landon Fuller Date: Sun, 19 Sep 2010 14:21:37 -0700 Subject: [PATCH] Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer. --- include/ffi.h.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/ffi.h.in b/include/ffi.h.in index 92e38c4..501f16e 100644 --- a/include/ffi.h.in +++ b/include/ffi.h.in @@ -257,7 +257,12 @@ size_t ffi_java_raw_size (ffi_cif *cif); __declspec(align(8)) #endif typedef struct { +#if @FFI_EXEC_TRAMPOLINE_TABLE@ + void *trampoline_table; + void *trampoline_table_entry; +#else char tramp[FFI_TRAMPOLINE_SIZE]; +#endif ffi_cif *cif; void (*fun)(ffi_cif*,void*,void**,void*); void *user_data; @@ -284,7 +289,12 @@ ffi_prep_closure_loc (ffi_closure*, void*codeloc); typedef struct { +#if FFI_EXEC_TRAMPOLINE_TABLE + void *trampoline_table; + void *trampoline_table_entry; +#else char tramp[FFI_TRAMPOLINE_SIZE]; +#endif ffi_cif *cif; @@ -305,7 +315,12 @@ typedef struct { } ffi_raw_closure; typedef struct { +#if FFI_EXEC_TRAMPOLINE_TABLE + void *trampoline_table; + void *trampoline_table_entry; +#else char tramp[FFI_TRAMPOLINE_SIZE]; +#endif ffi_cif *cif; -- 2.7.4