zval *function_name;
zend_free_op free_op1;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1, free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1, free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1, free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1, free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op1;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC));
+ object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_obj_zval_ptr_unused(TSRMLS_C));
+ object = _get_obj_zval_ptr_unused(TSRMLS_C);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_obj_zval_ptr_unused(TSRMLS_C));
+ object = _get_obj_zval_ptr_unused(TSRMLS_C);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_obj_zval_ptr_unused(TSRMLS_C));
+ object = _get_obj_zval_ptr_unused(TSRMLS_C);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_obj_zval_ptr_unused(TSRMLS_C));
+ object = _get_obj_zval_ptr_unused(TSRMLS_C);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC));
+ object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC));
+ object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
zend_free_op free_op2;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC));
+ object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;
zval *function_name;
call_slot *call = EX(call_slots) + opline->result.num;
+ zval *object;
SAVE_OPLINE();
zend_error_noreturn(E_ERROR, "Method name must be a string");
}
- ZVAL_COPY_VALUE(&call->object, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC));
+ object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
+ if (Z_TYPE_P(object) == IS_REFERENCE) {
+ ZVAL_COPY_VALUE(&call->object, Z_REFVAL_P(object));
+ } else {
+ ZVAL_COPY_VALUE(&call->object, object);
+ }
if (EXPECTED(Z_TYPE(call->object) != IS_UNDEF) &&
EXPECTED(Z_TYPE(call->object) == IS_OBJECT)) {
if ((call->fbc->common.fn_flags & ZEND_ACC_STATIC) != 0) {
ZVAL_UNDEF(&call->object);
} else {
- if (!Z_ISREF(call->object)) {
- Z_ADDREF(call->object); /* For $this pointer */
- } else {
- ZVAL_DUP(&call->object, Z_REFVAL(call->object));
- }
+ Z_ADDREF(call->object); /* For $this pointer */
}
call->num_additional_args = 0;