]> granicus.if.org Git - php/commitdiff
fix array keys being too strict to refs
authorAntony Dovgal <tony2001@php.net>
Mon, 5 Oct 2015 09:37:04 +0000 (12:37 +0300)
committerAntony Dovgal <tony2001@php.net>
Mon, 5 Oct 2015 09:49:34 +0000 (12:49 +0300)
and add tests

Zend/zend_operators.h

index f8c155d2d2baa2d709a4292fe3d892040a9ff8a0..987d055f9e68b2e10735800fc056ca1cf6d5b529 100644 (file)
@@ -731,6 +731,8 @@ static zend_always_inline int fast_equal_check_string(zval *op1, zval *op2)
 
 static zend_always_inline int fast_is_identical_function(zval *op1, zval *op2)
 {
+       ZVAL_DEREF(op1);
+       ZVAL_DEREF(op2);
        if (Z_TYPE_P(op1) != Z_TYPE_P(op2)) {
                return 0;
        } else if (Z_TYPE_P(op1) <= IS_TRUE) {
@@ -741,6 +743,8 @@ static zend_always_inline int fast_is_identical_function(zval *op1, zval *op2)
 
 static zend_always_inline int fast_is_not_identical_function(zval *op1, zval *op2)
 {
+       ZVAL_DEREF(op1);
+       ZVAL_DEREF(op2);
        if (Z_TYPE_P(op1) != Z_TYPE_P(op2)) {
                return 1;
        } else if (Z_TYPE_P(op1) <= IS_TRUE) {