]> granicus.if.org Git - php/commitdiff
Fixed guard support in magic method __set()
authorDmitry Stogov <dmitry@zend.com>
Thu, 6 Mar 2014 22:03:25 +0000 (02:03 +0400)
committerDmitry Stogov <dmitry@zend.com>
Thu, 6 Mar 2014 22:03:25 +0000 (02:03 +0400)
Zend/zend_object_handlers.c

index 1893e734551e41ab78505a68d180f474c4937f1e..ec5c7a312a8d6b29ef8c3527abac57592091fa52 100644 (file)
@@ -626,6 +626,8 @@ found:
                        }
                        (*guard) &= ~IN_SET;
                        zval_ptr_dtor(object);
+               } else if (EXPECTED(property_info != NULL)) {
+                       goto write_std_property;
                } else {
                        if (Z_STRVAL_P(member)[0] == '\0') {
                                if (Z_STRLEN_P(member) == 0) {
@@ -636,6 +638,7 @@ found:
                        }
                }
        } else if (EXPECTED(property_info != NULL)) {
+write_std_property:
                /* if we assign referenced variable, we should separate it */
                if (Z_REFCOUNTED_P(value)) {
                        if (Z_ISREF_P(value)) {