]> granicus.if.org Git - php/commitdiff
micro-optimization
authorDmitry Stogov <dmitry@zend.com>
Wed, 3 Jun 2015 10:43:05 +0000 (13:43 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 3 Jun 2015 10:43:05 +0000 (13:43 +0300)
Zend/zend_API.c
Zend/zend_inheritance.c
Zend/zend_object_handlers.c

index 757becf74646dce18ec71c7506be35fdececc38e..3a83f5f7f3a246f4a73c6b9df102ca090c1689b8 100644 (file)
@@ -3665,18 +3665,13 @@ ZEND_API int zend_declare_property_ex(zend_class_entry *ce, zend_string *name, z
                                break;
                }
        }
-       switch (access_type & ZEND_ACC_PPP_MASK) {
-               case ZEND_ACC_PRIVATE: {
-                               property_info->name = zend_mangle_property_name(ce->name->val, ce->name->len, name->val, name->len, ce->type & ZEND_INTERNAL_CLASS);
-                       }
-                       break;
-               case ZEND_ACC_PROTECTED: {
-                               property_info->name = zend_mangle_property_name("*", 1, name->val, name->len, ce->type & ZEND_INTERNAL_CLASS);
-                       }
-                       break;
-               case ZEND_ACC_PUBLIC:
-                       property_info->name = zend_string_copy(name);
-                       break;
+       if (access_type & ZEND_ACC_PUBLIC) {
+               property_info->name = zend_string_copy(name);
+       } else if (access_type & ZEND_ACC_PRIVATE) {
+               property_info->name = zend_mangle_property_name(ce->name->val, ce->name->len, name->val, name->len, ce->type & ZEND_INTERNAL_CLASS);
+       } else {
+               ZEND_ASSERT(access_type & ZEND_ACC_PROTECTED);
+               property_info->name = zend_mangle_property_name("*", 1, name->val, name->len, ce->type & ZEND_INTERNAL_CLASS);
        }
 
        property_info->name = zend_new_interned_string(property_info->name);
index f32c55aaef6fb12280dc3b9ddf5b8b857dbb3887..608af74353737710d70f6d7e33c3c6733edb85a4 100644 (file)
@@ -1451,7 +1451,7 @@ static void zend_do_traits_property_binding(zend_class_entry *ce) /* {{{ */
                         * then check whether the property is already there
                         */
                        flags = property_info->flags;
-                       if ((flags & ZEND_ACC_PPP_MASK) == ZEND_ACC_PUBLIC) {
+                       if (flags & ZEND_ACC_PUBLIC) {
                                prop_name = zend_string_copy(property_info->name);
                        } else {
                                const char *pname;
index 0127a9cf04ed0ec4b224e8f445f27ad8d231f227..259679a57fd81d1aa81613e65129eb27396c8093 100644 (file)
@@ -265,15 +265,14 @@ static void zend_std_call_issetter(zval *object, zval *member, zval *retval) /*
 
 static zend_always_inline int zend_verify_property_access(zend_property_info *property_info, zend_class_entry *ce) /* {{{ */
 {
-       switch (property_info->flags & ZEND_ACC_PPP_MASK) {
-               case ZEND_ACC_PUBLIC:
-                       return 1;
-               case ZEND_ACC_PROTECTED:
-                       return zend_check_protected(property_info->ce, EG(scope));
-               case ZEND_ACC_PRIVATE:
-                       return (ce == EG(scope) || property_info->ce == EG(scope));
+       if (property_info->flags & ZEND_ACC_PUBLIC) {
+               return 1;
+       } else if (property_info->flags & ZEND_ACC_PRIVATE) {
+               return (ce == EG(scope) || property_info->ce == EG(scope));
+       } else {
+               ZEND_ASSERT(property_info->flags & ZEND_ACC_PROTECTED);
+               return zend_check_protected(property_info->ce, EG(scope));
        }
-       return 0;
 }
 /* }}} */