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))
|
__declspec(align(8))
|
||||||
#endif
|
#endif
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
#if @FFI_EXEC_TRAMPOLINE_TABLE@
|
||||||
|
void *trampoline_table;
|
||||||
|
void *trampoline_table_entry;
|
||||||
|
#else
|
||||||
char tramp[FFI_TRAMPOLINE_SIZE];
|
char tramp[FFI_TRAMPOLINE_SIZE];
|
||||||
|
#endif
|
||||||
ffi_cif *cif;
|
ffi_cif *cif;
|
||||||
void (*fun)(ffi_cif*,void*,void**,void*);
|
void (*fun)(ffi_cif*,void*,void**,void*);
|
||||||
void *user_data;
|
void *user_data;
|
||||||
@@ -284,7 +289,12 @@ ffi_prep_closure_loc (ffi_closure*,
|
|||||||
void*codeloc);
|
void*codeloc);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
#if FFI_EXEC_TRAMPOLINE_TABLE
|
||||||
|
void *trampoline_table;
|
||||||
|
void *trampoline_table_entry;
|
||||||
|
#else
|
||||||
char tramp[FFI_TRAMPOLINE_SIZE];
|
char tramp[FFI_TRAMPOLINE_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
ffi_cif *cif;
|
ffi_cif *cif;
|
||||||
|
|
||||||
@@ -305,7 +315,12 @@ typedef struct {
|
|||||||
} ffi_raw_closure;
|
} ffi_raw_closure;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
#if FFI_EXEC_TRAMPOLINE_TABLE
|
||||||
|
void *trampoline_table;
|
||||||
|
void *trampoline_table_entry;
|
||||||
|
#else
|
||||||
char tramp[FFI_TRAMPOLINE_SIZE];
|
char tramp[FFI_TRAMPOLINE_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
ffi_cif *cif;
|
ffi_cif *cif;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user