]> granicus.if.org Git - php/commitdiff
Intriduced ZEND_ACC_INHERITED class flag.
authorDmitry Stogov <dmitry@zend.com>
Tue, 1 Nov 2016 19:56:25 +0000 (22:56 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 1 Nov 2016 19:56:25 +0000 (22:56 +0300)
It's going to be helpful for static optimisations, when "parent" is not known yet.

Zend/zend_compile.c
Zend/zend_compile.h
ext/reflection/php_reflection.c

index f53365fd58efdaba60c55abd8db159ca7dde8be3..47cc6c649c8d811295e2c9205785aeaf1c04ebea 100644 (file)
@@ -5949,6 +5949,7 @@ void zend_compile_class_decl(zend_ast *ast) /* {{{ */
                }
 
                zend_compile_class_ref(&extends_node, extends_ast, 0);
+               ce->ce_flags |= ZEND_ACC_INHERITED;
        }
 
        opline = get_next_op(CG(active_op_array));
index 1f0773d9a7abfc42aa30199748b1d304c15c4c3f..422404d0a33bf54886abbbacd90137f1a5c25578 100644 (file)
@@ -213,6 +213,7 @@ typedef struct _zend_oparray_context {
 #define ZEND_ACC_TRAIT                                         0x80
 #define ZEND_ACC_ANON_CLASS                 0x100
 #define ZEND_ACC_ANON_BOUND                 0x200
+#define ZEND_ACC_INHERITED                  0x400
 
 /* method flags (visibility) */
 /* The order of those must be kept - public < protected < private */
index 9ecb04d461f387818afef7ec3d43e0b9f63f8e60..1169bb682cad04b7bbd318db9d45ba1f61652a38 100644 (file)
@@ -4783,7 +4783,7 @@ ZEND_METHOD(reflection_class, getModifiers)
        }
        GET_REFLECTION_OBJECT_PTR(ce);
 
-       RETURN_LONG(ce->ce_flags & ~(ZEND_ACC_CONSTANTS_UPDATED|ZEND_ACC_USE_GUARDS));
+       RETURN_LONG(ce->ce_flags & ~(ZEND_ACC_CONSTANTS_UPDATED|ZEND_ACC_USE_GUARDS|ZEND_ACC_INHERITED));
 }
 /* }}} */