diff options
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r-- | Zend/zend_operators.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index e10a75679d..333bce5dfc 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1455,7 +1455,7 @@ ZEND_API int ZEND_FASTCALL bitwise_or_function(zval *result, zval *op1, zval *op if (EXPECTED(Z_STRLEN_P(op1) == Z_STRLEN_P(op2)) && Z_STRLEN_P(op1) == 1) { zend_uchar or = (zend_uchar) (*Z_STRVAL_P(op1) | *Z_STRVAL_P(op2)); if (result==op1) { - zend_string_release_ex(Z_STR_P(result), 0); + zval_ptr_dtor_str(result); } ZVAL_INTERNED_STR(result, ZSTR_CHAR(or)); return SUCCESS; @@ -1473,7 +1473,7 @@ ZEND_API int ZEND_FASTCALL bitwise_or_function(zval *result, zval *op1, zval *op } memcpy(ZSTR_VAL(str) + i, Z_STRVAL_P(longer) + i, Z_STRLEN_P(longer) - i + 1); if (result==op1) { - zend_string_release_ex(Z_STR_P(result), 0); + zval_ptr_dtor_str(result); } ZVAL_NEW_STR(result, str); return SUCCESS; @@ -1533,7 +1533,7 @@ ZEND_API int ZEND_FASTCALL bitwise_and_function(zval *result, zval *op1, zval *o if (EXPECTED(Z_STRLEN_P(op1) == Z_STRLEN_P(op2)) && Z_STRLEN_P(op1) == 1) { zend_uchar and = (zend_uchar) (*Z_STRVAL_P(op1) & *Z_STRVAL_P(op2)); if (result==op1) { - zend_string_release_ex(Z_STR_P(result), 0); + zval_ptr_dtor_str(result); } ZVAL_INTERNED_STR(result, ZSTR_CHAR(and)); return SUCCESS; @@ -1551,7 +1551,7 @@ ZEND_API int ZEND_FASTCALL bitwise_and_function(zval *result, zval *op1, zval *o } ZSTR_VAL(str)[i] = 0; if (result==op1) { - zend_string_release_ex(Z_STR_P(result), 0); + zval_ptr_dtor_str(result); } ZVAL_NEW_STR(result, str); return SUCCESS; @@ -1611,7 +1611,7 @@ ZEND_API int ZEND_FASTCALL bitwise_xor_function(zval *result, zval *op1, zval *o if (EXPECTED(Z_STRLEN_P(op1) == Z_STRLEN_P(op2)) && Z_STRLEN_P(op1) == 1) { zend_uchar xor = (zend_uchar) (*Z_STRVAL_P(op1) ^ *Z_STRVAL_P(op2)); if (result==op1) { - zend_string_release_ex(Z_STR_P(result), 0); + zval_ptr_dtor_str(result); } ZVAL_INTERNED_STR(result, ZSTR_CHAR(xor)); return SUCCESS; @@ -1629,7 +1629,7 @@ ZEND_API int ZEND_FASTCALL bitwise_xor_function(zval *result, zval *op1, zval *o } ZSTR_VAL(str)[i] = 0; if (result==op1) { - zend_string_release_ex(Z_STR_P(result), 0); + zval_ptr_dtor_str(result); } ZVAL_NEW_STR(result, str); return SUCCESS; @@ -2332,7 +2332,7 @@ static void ZEND_FASTCALL increment_string(zval *str) /* {{{ */ int ch; if (Z_STRLEN_P(str) == 0) { - zend_string_release_ex(Z_STR_P(str), 0); + zval_ptr_dtor_str(str); ZVAL_INTERNED_STR(str, ZSTR_CHAR('1')); return; } @@ -2426,7 +2426,7 @@ try_again: switch (is_numeric_string(Z_STRVAL_P(op1), Z_STRLEN_P(op1), &lval, &dval, 0)) { case IS_LONG: - zend_string_release_ex(Z_STR_P(op1), 0); + zval_ptr_dtor_str(op1); if (lval == ZEND_LONG_MAX) { /* switch to double */ double d = (double)lval; @@ -2436,7 +2436,7 @@ try_again: } break; case IS_DOUBLE: - zend_string_release_ex(Z_STR_P(op1), 0); + zval_ptr_dtor_str(op1); ZVAL_DOUBLE(op1, dval+1); break; default: @@ -2493,13 +2493,13 @@ try_again: break; case IS_STRING: /* Like perl we only support string increment */ if (Z_STRLEN_P(op1) == 0) { /* consider as 0 */ - zend_string_release_ex(Z_STR_P(op1), 0); + zval_ptr_dtor_str(op1); ZVAL_LONG(op1, -1); break; } switch (is_numeric_string(Z_STRVAL_P(op1), Z_STRLEN_P(op1), &lval, &dval, 0)) { case IS_LONG: - zend_string_release_ex(Z_STR_P(op1), 0); + zval_ptr_dtor_str(op1); if (lval == ZEND_LONG_MIN) { double d = (double)lval; ZVAL_DOUBLE(op1, d-1); @@ -2508,7 +2508,7 @@ try_again: } break; case IS_DOUBLE: - zend_string_release_ex(Z_STR_P(op1), 0); + zval_ptr_dtor_str(op1); ZVAL_DOUBLE(op1, dval - 1); break; } |