projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
libffi.c
diff --git
a/src/libffi.c
b/src/libffi.c
index 897affbd56d28dded713f8029159b7ec0fa70884..b0100f61d96b47763700d1cbf0d06609119899b4 100644
(file)
--- a/
src/libffi.c
+++ b/
src/libffi.c
@@
-48,7
+48,7
@@
static void psi_ffi_closure_free(void *c)
#endif
}
#endif
}
-static void handler(ffi_cif *signature, void *_result, void **_args, void *_data);
+static void
psi_ffi_
handler(ffi_cif *signature, void *_result, void **_args, void *_data);
static inline ffi_abi psi_ffi_abi(const char *convention) {
return FFI_DEFAULT_ABI;
static inline ffi_abi psi_ffi_abi(const char *convention) {
return FFI_DEFAULT_ABI;
@@
-149,12
+149,12
@@
static inline PSI_LibffiData *PSI_LibffiDataAlloc(PSI_LibffiContext *context, im
rc = ffi_prep_closure_loc(
data->closure,
&context->signature,
rc = ffi_prep_closure_loc(
data->closure,
&context->signature,
- handler,
+
psi_ffi_
handler,
data,
data->code);
ZEND_ASSERT(FFI_OK == rc);
#elif PSI_HAVE_FFI_PREP_CLOSURE
data,
data->code);
ZEND_ASSERT(FFI_OK == rc);
#elif PSI_HAVE_FFI_PREP_CLOSURE
- rc = ffi_prep_closure(data->code, &context->signature, handler, data);
+ rc = ffi_prep_closure(data->code, &context->signature,
psi_ffi_
handler, data);
ZEND_ASSERT(FFI_OK == rc);
#else
# error "Neither ffi_prep_closure() nor ffi_prep_closure_loc() available"
ZEND_ASSERT(FFI_OK == rc);
#else
# error "Neither ffi_prep_closure() nor ffi_prep_closure_loc() available"
@@
-207,11
+207,11
@@
static inline void PSI_LibffiContextFree(PSI_LibffiContext **L) {
}
}
}
}
-static void handler(ffi_cif *_sig, void *_result, void **_args, void *_data)
+static void
psi_ffi_
handler(ffi_cif *_sig, void *_result, void **_args, void *_data)
{
PSI_LibffiData *data = _data;
size_t i;
{
PSI_LibffiData *data = _data;
size_t i;
- void **arg_p
tr = NULL, **arg_p
rm = NULL;
+ void **arg_prm = NULL;
impl_val ret_val;
if (SUCCESS != psi_parse_args(*(zend_execute_data **)_args[0], data->impl)) {
impl_val ret_val;
if (SUCCESS != psi_parse_args(*(zend_execute_data **)_args[0], data->impl)) {
@@
-219,17
+219,12
@@
static void handler(ffi_cif *_sig, void *_result, void **_args, void *_data)
}
if (data->impl->decl->args) {
}
if (data->impl->decl->args) {
- arg_ptr = malloc(data->impl->decl->args->count * sizeof(*arg_ptr));
arg_prm = malloc(data->impl->decl->args->count * sizeof(*arg_prm));
for (i = 0; i < data->impl->decl->args->count; ++i) {
decl_arg *darg = data->impl->decl->args->args[i];
arg_prm = malloc(data->impl->decl->args->count * sizeof(*arg_prm));
for (i = 0; i < data->impl->decl->args->count; ++i) {
decl_arg *darg = data->impl->decl->args->args[i];
- arg_ptr[i] = psi_do_let(darg);
- arg_prm[i] = (darg->let->val && darg->let->val->is_reference)
- ? &arg_ptr[i] : arg_ptr[i];
-
- darg->let->ptr = arg_ptr[i];
+ arg_prm[i] = psi_do_let(darg);
}
}
}
}
@@
-253,25
+248,22
@@
static void handler(ffi_cif *_sig, void *_result, void **_args, void *_data)
psi_do_clean(data->impl);
psi_do_clean(data->impl);
- if (arg_ptr) {
- free(arg_ptr);
- }
if (arg_prm) {
free(arg_prm);
}
}
if (arg_prm) {
free(arg_prm);
}
}
-static void init(PSI_Context *C)
+static void
psi_ffi_
init(PSI_Context *C)
{
C->context = PSI_LibffiContextInit(NULL);
}
{
C->context = PSI_LibffiContextInit(NULL);
}
-static void dtor(PSI_Context *C)
+static void
psi_ffi_
dtor(PSI_Context *C)
{
PSI_LibffiContextFree((void *) &C->context);
}
{
PSI_LibffiContextFree((void *) &C->context);
}
-static zend_function_entry *compile(PSI_Context *C, PSI_Data *D)
+static zend_function_entry *
psi_ffi_
compile(PSI_Context *C, PSI_Data *D)
{
size_t i, j = 0;
zend_function_entry *zfe = calloc(D->impls->count + 1, sizeof(*zfe));
{
size_t i, j = 0;
zend_function_entry *zfe = calloc(D->impls->count + 1, sizeof(*zfe));
@@
-297,9
+289,9
@@
static zend_function_entry *compile(PSI_Context *C, PSI_Data *D)
}
static PSI_ContextOps ops = {
}
static PSI_ContextOps ops = {
- init,
- dtor,
- compile,
+
psi_ffi_
init,
+
psi_ffi_
dtor,
+
psi_ffi_
compile,
};
PSI_ContextOps *PSI_Libffi(void)
};
PSI_ContextOps *PSI_Libffi(void)