diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2019-07-04 10:32:48 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-07-04 10:32:48 +0200 |
| commit | 21b0f444296ac44eadc7ed3474fba5978ec8163d (patch) | |
| tree | 188dac2f1ed6fdaa54091f801183f1895991bc25 /Zend | |
| parent | c581b2f5b0628c827a6c88434a17035c8eff71ab (diff) | |
| parent | 1fea887cc00ea01fd34bc17860c1d41370f23e53 (diff) | |
| download | php-git-21b0f444296ac44eadc7ed3474fba5978ec8163d.tar.gz | |
Merge branch 'PHP-7.4'
Diffstat (limited to 'Zend')
| -rw-r--r-- | Zend/zend.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index 6b9179c2ec..526eaaf048 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -956,7 +956,11 @@ static void zend_resolve_property_types(void) /* {{{ */ zend_property_info *prop_info; ZEND_HASH_FOREACH_PTR(CG(class_table), ce) { - if (UNEXPECTED(ce->type == ZEND_INTERNAL_CLASS && ZEND_CLASS_HAS_TYPE_HINTS(ce))) { + if (ce->type != ZEND_INTERNAL_CLASS) { + continue; + } + + if (UNEXPECTED(ZEND_CLASS_HAS_TYPE_HINTS(ce))) { ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop_info) { if (ZEND_TYPE_IS_NAME(prop_info->type)) { zend_string *type_name = ZEND_TYPE_NAME(prop_info->type); @@ -970,6 +974,7 @@ static void zend_resolve_property_types(void) /* {{{ */ } } ZEND_HASH_FOREACH_END(); } + ce->ce_flags |= ZEND_ACC_PROPERTY_TYPES_RESOLVED; } ZEND_HASH_FOREACH_END(); } /* }}} */ @@ -986,6 +991,8 @@ int zend_post_startup(void) /* {{{ */ zend_executor_globals *executor_globals = ts_resource(executor_globals_id); #endif + zend_resolve_property_types(); + if (zend_post_startup_cb) { int (*cb)(void) = zend_post_startup_cb; @@ -995,8 +1002,6 @@ int zend_post_startup(void) /* {{{ */ } } - zend_resolve_property_types(); - #ifdef ZTS *GLOBAL_FUNCTION_TABLE = *compiler_globals->function_table; *GLOBAL_CLASS_TABLE = *compiler_globals->class_table; |
