OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
#include "context.h"
#include "call.h"
#include "php.h"
#ifdef HAVE_LIBJIT
+#include "libjit.h"
#include <jit/jit.h>
#if HAVE_INT128
return false;
}
- context->signature = jit_type_create_signature(jit_abi_cdecl, jit_type_void,
+ context->signature = jit_type_create_signature(jit_abi_fastcall, jit_type_void,
params, 2, 1);
if (!context->signature) {
jit_context_destroy(context->jit);
info = pecalloc(1, sizeof(*info), 1);
info->eles = psi_plist_init((psi_plist_dtor) psi_jit_type_free);
+ psi_context_composite_type_elements(C, darg, &info->eles);
info->strct = jit_type_create_struct((jit_type_t *)
- psi_context_composite_type_elements(C, darg, &info->eles),
+ psi_plist_eles(info->eles),
psi_plist_count(info->eles), 0);
darg->engine.info = info;
darg->engine.type = NULL;
jit_type_free(info->strct);
- psi_plist_free(info->eles);
+ /* just free */
+ pefree(info->eles, 1);
pefree(info, 1);
}
}
jit_context_build_start(ctx->jit);
info->get.signature = jit_type_create_signature(jit_abi_cdecl,
- psi_context_decl_arg_full_type(C, evar->getter->func), NULL, 0, 1);
+ psi_context_decl_arg_call_type(C, evar->getter->func), NULL, 0, 1);
if (!info->get.signature) {
goto failure;
}
info->set.params[0] = psi_context_decl_arg_call_type(C, evar->arg);
info->set.signature = jit_type_create_signature(jit_abi_cdecl,
- psi_context_decl_arg_full_type(C, evar->setter->func),
+ psi_context_decl_arg_call_type(C, evar->setter->func),
info->set.params, 1, 1);
if (!info->set.signature) {
goto failure;
{
l->pos = jit_type_get_alignment(orig_type);
l->len = jit_type_get_size(orig_type);
+
+ assert(l->pos);
+ assert(l->len);
}
static struct psi_context_ops ops = {