} else if (Z_ISREF_P(op2)) {
op2 = Z_REFVAL_P(op2);
} else if (!converted) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_ADD);
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_ADD, add_function);
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
} else if (Z_ISREF_P(op2)) {
op2 = Z_REFVAL_P(op2);
} else if (!converted) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SUB);
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SUB, sub_function);
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
} else if (Z_ISREF_P(op2)) {
op2 = Z_REFVAL_P(op2);
} else if (!converted) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_MUL);
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_MUL, mul_function);
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
} else if (Z_ISREF_P(op2)) {
op2 = Z_REFVAL_P(op2);
} else if (!converted) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_POW);
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_POW, pow_function);
if (Z_TYPE_P(op1) == IS_ARRAY) {
ZVAL_LONG(result, 0);
} else if (Z_ISREF_P(op2)) {
op2 = Z_REFVAL_P(op2);
} else if (!converted) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_DIV);
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_DIV, div_function);
zendi_convert_scalar_to_number(op1, op1_copy, result);
zendi_convert_scalar_to_number(op2, op2_copy, result);
zval op1_copy, op2_copy;
zend_long op1_lval;
- if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_MOD);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_MOD, mod_function);
zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
+ }
+ op1_lval = Z_LVAL_P(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_MOD);
zendi_convert_to_long(op2, op2_copy, result);
- } else {
- op1_lval = Z_LVAL_P(op1);
}
if (Z_LVAL_P(op2) == 0) {
zval op1_copy, op2_copy;
zend_long op1_lval;
- if ((Z_TYPE_P(op1) != IS_FALSE && Z_TYPE_P(op1) != IS_TRUE) ||
- (Z_TYPE_P(op2) != IS_FALSE && Z_TYPE_P(op2) != IS_TRUE)) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BOOL_XOR);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_FALSE && Z_TYPE_P(op1) != IS_TRUE)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_BOOL_XOR, boolean_xor_function);
zendi_convert_to_boolean(op1, op1_copy, result);
- op1_lval = Z_TYPE_P(op1) == IS_TRUE;
+ }
+ op1_lval = Z_TYPE_P(op1) == IS_TRUE;
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_FALSE && Z_TYPE_P(op2) != IS_TRUE)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_BOOL_XOR);
zendi_convert_to_boolean(op2, op2_copy, result);
- } else {
- op1_lval = Z_TYPE_P(op1) == IS_TRUE;
}
ZVAL_BOOL(result, op1_lval ^ (Z_TYPE_P(op2) == IS_TRUE));
return SUCCESS;
}
- if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BW_OR);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_BW_OR, bitwise_or_function);
zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
+ }
+ op1_lval = Z_LVAL_P(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_BW_OR);
zendi_convert_to_long(op2, op2_copy, result);
- } else {
- op1_lval = Z_LVAL_P(op1);
}
ZVAL_LONG(result, op1_lval | Z_LVAL_P(op2));
return SUCCESS;
}
- if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BW_AND);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_BW_AND, bitwise_and_function);
zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
+ }
+ op1_lval = Z_LVAL_P(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_BW_AND);
zendi_convert_to_long(op2, op2_copy, result);
- } else {
- op1_lval = Z_LVAL_P(op1);
}
ZVAL_LONG(result, op1_lval & Z_LVAL_P(op2));
return SUCCESS;
}
- if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_BW_XOR);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_BW_XOR, bitwise_xor_function);
zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
+ }
+ op1_lval = Z_LVAL_P(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_BW_XOR);
zendi_convert_to_long(op2, op2_copy, result);
- } else {
- op1_lval = Z_LVAL_P(op1);
}
ZVAL_LONG(result, op1_lval ^ Z_LVAL_P(op2));
zval op1_copy, op2_copy;
zend_long op1_lval;
- if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SL);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_SL, shift_left_function);
zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
+ }
+ op1_lval = Z_LVAL_P(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_SL);
zendi_convert_to_long(op2, op2_copy, result);
- } else {
- op1_lval = Z_LVAL_P(op1);
}
/* prevent wrapping quirkiness on some processors where << 64 + x == << x */
zval op1_copy, op2_copy;
zend_long op1_lval;
- if (Z_TYPE_P(op1) != IS_LONG || Z_TYPE_P(op2) != IS_LONG) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_SR);
-
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(ZEND_SR, shift_right_function);
zendi_convert_to_long(op1, op1_copy, result);
- op1_lval = Z_LVAL_P(op1);
+ }
+ op1_lval = Z_LVAL_P(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_LONG)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_SR);
zendi_convert_to_long(op2, op2_copy, result);
- } else {
- op1_lval = Z_LVAL_P(op1);
}
/* prevent wrapping quirkiness on some processors where >> 64 + x == >> x */
zval op1_copy, op2_copy;
int use_copy1 = 0, use_copy2 = 0;
- if (UNEXPECTED(Z_TYPE_P(op1) != IS_STRING) ||
- UNEXPECTED(Z_TYPE_P(op2) != IS_STRING)) {
- ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_CONCAT);
-
- if (Z_TYPE_P(op1) != IS_STRING) {
- use_copy1 = zend_make_printable_zval(op1, &op1_copy TSRMLS_CC);
- }
- if (Z_TYPE_P(op2) != IS_STRING) {
- use_copy2 = zend_make_printable_zval(op2, &op2_copy TSRMLS_CC);
+ if (UNEXPECTED(Z_TYPE_P(op1) != IS_STRING)) {
+ ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_CONCAT, concat_function);
+ use_copy1 = zend_make_printable_zval(op1, &op1_copy TSRMLS_CC);
+ if (use_copy1) {
+ /* We have created a converted copy of op1. Therefore, op1 won't become the result so
+ * we have to free it.
+ */
+ if (result == op1) {
+ zval_dtor(op1);
+ if (UNEXPECTED(op1 == op2)) {
+ op2 = &op1_copy;
+ }
+ }
+ op1 = &op1_copy;
}
}
-
- if (use_copy1) {
- /* We have created a converted copy of op1. Therefore, op1 won't become the result so
- * we have to free it.
- */
- if (result == op1) {
- zval_dtor(op1);
+ if (UNEXPECTED(Z_TYPE_P(op2) != IS_STRING)) {
+ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(ZEND_CONCAT);
+ use_copy2 = zend_make_printable_zval(op2, &op2_copy TSRMLS_CC);
+ if (use_copy2) {
+ op2 = &op2_copy;
}
- op1 = &op1_copy;
- }
- if (use_copy2) {
- op2 = &op2_copy;
}
{
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
ZVAL_DEREF(var_ptr);
SEPARATE_ZVAL_NOREF(var_ptr);
- if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
- UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
- /* proxy object */
- zval rv;
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
- Z_ADDREF_P(objval);
- binary_op(objval, objval, value TSRMLS_CC);
- Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
- zval_ptr_dtor(objval);
- } else {
- binary_op(var_ptr, var_ptr, value TSRMLS_CC);
- }
+ binary_op(var_ptr, var_ptr, value TSRMLS_CC);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);