]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4'
authorDmitry Stogov <dmitry@zend.com>
Wed, 5 Jun 2019 23:23:17 +0000 (02:23 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 5 Jun 2019 23:23:17 +0000 (02:23 +0300)
* PHP-7.4:
  Cheaper checks for exceptions thrown from __toString()

14 files changed:
1  2 
Zend/zend_builtin_functions.c
Zend/zend_execute.c
Zend/zend_operators.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/dom/document.c
ext/mbstring/mbstring.c
ext/openssl/openssl.c
ext/reflection/php_reflection.c
ext/simplexml/simplexml.c
ext/spl/spl_iterators.c
ext/standard/assert.c
ext/standard/string.c
ext/xsl/xsltprocessor.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index c21b6dad2423a8066d441af484fa74f9b161ff2b,06c504884cf7cde3fc054407fadddf66d38b160f..bb8dfb3766159dca253e4ce569e939c45ed92c53
@@@ -726,14 -721,15 +727,15 @@@ static int sxe_prop_dim_exists(zend_obj
        zval            tmp_zv;
  
        if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
-               ZVAL_STR(&tmp_zv, zval_get_string_func(member));
-               member = &tmp_zv;
-               if (EG(exception)) {
+               zend_string *str = zval_try_get_string_func(member);
+               if (UNEXPECTED(!str)) {
                        return 0;
                }
+               ZVAL_STR(&tmp_zv, str);
+               member = &tmp_zv;
        }
  
 -      sxe = Z_SXEOBJ_P(object);
 +      sxe = php_sxe_fetch_object(object);
  
        GET_NODE(sxe, node);
  
@@@ -850,14 -844,15 +852,15 @@@ static void sxe_prop_dim_delete(zend_ob
        int             test = 0;
  
        if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
-               ZVAL_STR(&tmp_zv, zval_get_string_func(member));
-               member = &tmp_zv;
-               if (EG(exception)) {
+               zend_string *str = zval_try_get_string_func(member);
+               if (UNEXPECTED(!str)) {
                        return;
                }
+               ZVAL_STR(&tmp_zv, str);
+               member = &tmp_zv;
        }
  
 -      sxe = Z_SXEOBJ_P(object);
 +      sxe = php_sxe_fetch_object(object);
  
        GET_NODE(sxe, node);
  
Simple merge
Simple merge
Simple merge
Simple merge