zend_internal_function_info *fi;
struct psi_impl_arg *iarg;
- aip = calloc(argc + 1 + !!impl->func->vararg, sizeof(*aip));
+ aip = pecalloc(argc + 1 + !!impl->func->vararg, sizeof(*aip), 1);
fi = (zend_internal_function_info *) &aip[0];
#ifdef ZEND_TYPE_ENCODE
struct psi_impl_arg *vararg = impl->func->vararg;
zend_internal_arg_info *ai = &aip[argc];
- ai->name = vararg->var->name;
+ ai->name = vararg->var->name->val;
#ifdef ZEND_TYPE_ENCODE
ai->type = ZEND_TYPE_ENCODE(psi_internal_type(vararg->type), 1);
#else
while (psi_plist_get(impl->func->args, i++, &iarg)) {
zend_internal_arg_info *ai = &aip[i];
- ai->name = iarg->var->name;
+ ai->name = iarg->var->name->val;
#ifdef ZEND_TYPE_ENCODE
ai->type = ZEND_TYPE_ENCODE(psi_internal_type(iarg->type), 1);
#else
impl_val *ptr = deref_impl_val(ret_val, var);
char *str;
- /* holy moly, this breaks arrays of pointers to char,
- * like e.g. tzname */
if (var->arg->var->array_size && var->arg->var->pointer_level == 1) {
str = (char *) ptr;
} else {
ZVAL_NULL(&ele);
psi_set_exp_exec_ex(sub_exp, &ele, sym->ptr, frame);
- add_assoc_zval(return_value, ivar->name + 1, &ele);
+ add_assoc_zval_ex(return_value, ivar->name->val + 1, ivar->name->len - 1, &ele);
}
}