X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fengine.h;h=3aa78a48f71bc366c0a1dfb3e794b21ea726b364;hb=6b2e6562e64a263a42910d28e23b6ca94f3ecb65;hp=364ec550fd760350e5d334522b842b8ab6a7f63f;hpb=ed5ebb3caac1ac8bf6a4b32eabfb523f23de8576;p=m6w6%2Fext-psi diff --git a/src/engine.h b/src/engine.h index 364ec55..3aa78a4 100644 --- a/src/engine.h +++ b/src/engine.h @@ -16,10 +16,19 @@ static inline size_t psi_offset_padding(size_t diff, size_t alignment) { return diff; } +static inline void psi_do_set(zval *return_value, set_value *set) +{ + decl_arg *set_arg = set->vars->vars[0]->arg; + + zval_dtor(return_value); + set->func->handler(return_value, set, set_arg->let); +} + int psi_internal_type(impl_type *type); zend_internal_arg_info *psi_internal_arginfo(impl *impl); size_t psi_num_min_args(impl *impl); -void psi_call(zend_execute_data *execute_data, zval *return_value, impl *impl); +ZEND_RESULT_CODE psi_call(zend_execute_data *execute_data, zval *return_value, impl *impl); +ZEND_RESULT_CODE psi_callback(let_callback *cb, void *retval, unsigned argc, void **argv); #endif