} else {
SET_UNUSED(opline->op2);
}
- if (pass_type==BYREF_FORCE && !CG(active_op_array)->arg_types) {
- int i;
+ if (!CG(active_op_array)->arg_types) {
+ if (pass_type==BYREF_FORCE) {
+ int i;
- CG(active_op_array)->arg_types = (unsigned char *) emalloc(sizeof(unsigned char)*(offset->u.constant.value.lval+1));
- for (i=1; i<offset->u.constant.value.lval; i++) {
- CG(active_op_array)->arg_types[i] = BYREF_NONE;
+ CG(active_op_array)->arg_types = (unsigned char *) emalloc(sizeof(unsigned char)*(offset->u.constant.value.lval+1));
+ for (i=1; i<offset->u.constant.value.lval; i++) {
+ CG(active_op_array)->arg_types[i] = BYREF_NONE;
+ }
+ CG(active_op_array)->arg_types[0]=(unsigned char) offset->u.constant.value.lval;
}
- CG(active_op_array)->arg_types[0]=(unsigned char) offset->u.constant.value.lval;
- }
- if (CG(active_op_array)->arg_types) {
+ } else {
CG(active_op_array)->arg_types = (unsigned char *) erealloc(CG(active_op_array)->arg_types, sizeof(unsigned char)*(offset->u.constant.value.lval+1));
CG(active_op_array)->arg_types[offset->u.constant.value.lval] = pass_type;
CG(active_op_array)->arg_types[0]++;