From 56b3f8cef0f28cefaa0f40fe0cf7c524adef131d Mon Sep 17 00:00:00 2001 From: Landon Fuller Date: Sat, 12 Feb 2011 11:14:54 -0500 Subject: [PATCH] Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer. This re-integrates commit da2773e02ab26cc11a7f. --- include/ffi.h.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/ffi.h.in b/include/ffi.h.in index 96b8fd38..747dd170 100644 --- a/include/ffi.h.in +++ b/include/ffi.h.in @@ -270,7 +270,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; @@ -303,7 +308,12 @@ ffi_prep_closure_loc (ffi_closure*, # pragma pack 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; @@ -324,7 +334,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;