[php-src] master: Zend: derive lazy object initializer callble from FCC

From: Date: Sat, 10 Oct 2026 17:27:42 +0000
Subject: [php-src] master: Zend: derive lazy object initializer callble from FCC
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-142156@lists.php.net to get a copy of this message
Author: Gina Peter Banyard (Girgias) Date: 2026-10-10T18:27:38+01:00 Commit: https://github.com/php/php-src/commit/612b1f9d223102cd0868f54062ac3c71e0677e1d Raw diff: https://github.com/php/php-src/commit/612b1f9d223102cd0868f54062ac3c71e0677e1d.diff Zend: derive lazy object initializer callble from FCC Changed paths: M Zend/zend_lazy_objects.c M Zend/zend_lazy_objects.h M ext/reflection/php_reflection.c Diff: diff --git a/Zend/zend_lazy_objects.c b/Zend/zend_lazy_objects.c index 5492419d8c67..1d894acee525 100644 --- a/Zend/zend_lazy_objects.c +++ b/Zend/zend_lazy_objects.c @@ -116,7 +116,7 @@ static bool zend_lazy_object_has_stale_info(const zend_object *obj) return zend_hash_index_find_ptr(&EG(lazy_objects_store).infos, obj->handle); } -zval* zend_lazy_object_get_initializer_zv(zend_object *obj) +ZEND_API void zend_lazy_object_get_initializer_callback(zend_object *obj, zval *callback) { ZEND_ASSERT(!zend_lazy_object_initialized(obj)); @@ -124,7 +124,7 @@ zval* zend_lazy_object_get_initializer_zv(zend_object *obj) ZEND_ASSERT(!(info->flags & ZEND_LAZY_OBJECT_INITIALIZED)); - return &info->u.initializer.zv; + zend_get_callable_zval_from_fcc(&info->u.initializer.fcc, callback); } static zend_fcall_info_cache* zend_lazy_object_get_initializer_fcc(const zend_object *obj) diff --git a/Zend/zend_lazy_objects.h b/Zend/zend_lazy_objects.h index f517d9b31a51..f78f7ddb42a4 100644 --- a/Zend/zend_lazy_objects.h +++ b/Zend/zend_lazy_objects.h @@ -65,7 +65,7 @@ ZEND_API zend_object *zend_lazy_object_mark_as_initialized(zend_object *obj); void zend_lazy_objects_init(zend_lazy_objects_store *store); void zend_lazy_objects_destroy(zend_lazy_objects_store *store); -zval* zend_lazy_object_get_initializer_zv(zend_object *obj); +ZEND_API void zend_lazy_object_get_initializer_callback(zend_object *obj, zval *callback); zend_object *zend_lazy_object_get_instance(zend_object *obj); zend_lazy_object_flags_t zend_lazy_object_get_flags(const zend_object *obj); void zend_lazy_object_del_info(const zend_object *obj); diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 984ecfb56040..90bee707e5d1 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -5277,7 +5277,7 @@ ZEND_METHOD(ReflectionClass, getLazyInitializer) RETURN_NULL(); } - RETURN_ZVAL(zend_lazy_object_get_initializer_zv(object), true, false); + zend_lazy_object_get_initializer_callback(object, return_value); } /* }}} */

« previous php.cvs (#142156) next »