]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.6'
authorTjerk Meesters <datibbaw@php.net>
Sun, 12 Oct 2014 04:55:24 +0000 (12:55 +0800)
committerTjerk Meesters <datibbaw@php.net>
Sun, 12 Oct 2014 04:55:24 +0000 (12:55 +0800)
* PHP-5.6:
  More fixes for nodelist array access
  - testing for null property read
  - no zval copying if the type is already long
  - memory fix for master
  - use zend_long for offset

Conflicts:
ext/dom/php_dom.c

1  2 
ext/dom/php_dom.c

index 71c06612db80e9f1d6f7cf1928bfac92d295bdb3,4e035c764045af2f4331d065ff69f68107b2e2ef..c25cbaba587378a36aabff9eb73e27d24bf24e1b
@@@ -1552,31 -1702,29 +1552,24 @@@ zval *dom_nodelist_read_dimension(zval 
                return NULL;
        }
  
-       ZVAL_COPY(&offset_copy, offset);
-       convert_to_long(&offset_copy);
 -      ZVAL_LONG(&offset_copy, dom_get_long(offset));
++      ZVAL_LONG(&offset_copy, zval_get_long(offset));
  
 -      zend_call_method_with_1_params(&object, Z_OBJCE_P(object), NULL, "item", &rv, &offset_copy);
 -
 -      Z_DELREF_P(rv);
 +      zend_call_method_with_1_params(object, Z_OBJCE_P(object), NULL, "item", rv, &offset_copy);
  
        return rv;
  } /* }}} end dom_nodelist_read_dimension */
  
  int dom_nodelist_has_dimension(zval *object, zval *member, int check_empty TSRMLS_DC)
  {
-       zval *length, offset_copy;
-       int ret;
-       ZVAL_COPY(&offset_copy, member);
-       convert_to_long(&offset_copy);
 -      long offset = dom_get_long(member);
++      zend_long offset = zval_get_long(member);
  
-       if (Z_LVAL(offset_copy) < 0) {
+       if (offset < 0) {
                return 0;
-       }
-       length = zend_read_property(Z_OBJCE_P(object), object, "length", sizeof("length") - 1, 0 TSRMLS_CC);
-       ret = Z_LVAL(offset_copy) < Z_LVAL_P(length);
+       } else {
+               zval *length = zend_read_property(Z_OBJCE_P(object), object, "length", sizeof("length") - 1, 0 TSRMLS_CC);
 -              int ret = length && offset < Z_LVAL_P(length);
 -
 -              FREE_ZVAL(length);
  
-       return ret;
 -              return ret;
++              return length && offset < Z_LVAL_P(length);
+       }
  } /* }}} end dom_nodelist_has_dimension */
  
  #endif /* HAVE_DOM */