Modify the ffi_closure structures to hold table/table entry pointers instead of a...
authorLandon Fuller <landonf@bikemonkey.org>
Sun, 19 Sep 2010 21:21:37 +0000 (14:21 -0700)
committerLandon Fuller <landonf@bikemonkey.org>
Sun, 19 Sep 2010 21:21:37 +0000 (14:21 -0700)
include/ffi.h.in

index 92e38c4..501f16e 100644 (file)
@@ -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;