Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer.
This commit is contained 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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user