Commit ad25a5fa085 for php
commit ad25a5fa085bc64117c22d77e952d9dd7dc0365d
Author: Gina Peter Banyard <girgias@php.net>
Date: Tue Sep 29 18:30:32 2026 +0100
Zend/lazy_objects: add const qualifiers
diff --git a/Zend/zend_lazy_objects.c b/Zend/zend_lazy_objects.c
index aa757564163..5492419d8c6 100644
--- a/Zend/zend_lazy_objects.c
+++ b/Zend/zend_lazy_objects.c
@@ -96,7 +96,7 @@ static void zend_lazy_object_set_info(const zend_object *obj, zend_lazy_object_i
{
ZEND_ASSERT(zend_object_is_lazy(obj));
- zval *zv = zend_hash_index_add_new_ptr(&EG(lazy_objects_store).infos, obj->handle, info);
+ const zval *zv = zend_hash_index_add_new_ptr(&EG(lazy_objects_store).infos, obj->handle, info);
ZEND_ASSERT(zv);
(void)zv;
}
@@ -127,7 +127,7 @@ zval* zend_lazy_object_get_initializer_zv(zend_object *obj)
return &info->u.initializer.zv;
}
-static zend_fcall_info_cache* zend_lazy_object_get_initializer_fcc(zend_object *obj)
+static zend_fcall_info_cache* zend_lazy_object_get_initializer_fcc(const zend_object *obj)
{
ZEND_ASSERT(!zend_lazy_object_initialized(obj));
@@ -236,8 +236,8 @@ static bool zlo_is_iterating(zend_object *object)
/* Make object 'obj' lazy. If 'obj' is NULL, create a lazy instance of
* class 'reflection_ce' */
ZEND_API zend_object *zend_object_make_lazy(zend_object *obj,
- zend_class_entry *reflection_ce, zval *initializer_zv,
- zend_fcall_info_cache *initializer_fcc, zend_lazy_object_flags_t flags)
+ zend_class_entry *reflection_ce, const zval *initializer_zv,
+ const zend_fcall_info_cache *initializer_fcc, zend_lazy_object_flags_t flags)
{
ZEND_ASSERT(!(flags & ~(ZEND_LAZY_OBJECT_USER_MASK|ZEND_LAZY_OBJECT_STRATEGY_MASK)));
ZEND_ASSERT((flags & ZEND_LAZY_OBJECT_STRATEGY_MASK) == ZEND_LAZY_OBJECT_STRATEGY_GHOST
@@ -252,7 +252,7 @@ ZEND_API zend_object *zend_object_make_lazy(zend_object *obj,
return NULL;
}
- for (zend_class_entry *parent = reflection_ce->parent; parent; parent = parent->parent) {
+ for (const zend_class_entry *parent = reflection_ce->parent; parent; parent = parent->parent) {
if (UNEXPECTED(parent->type == ZEND_INTERNAL_CLASS && parent != zend_standard_class_def)) {
zend_throw_error(NULL, "Cannot make instance of internal class lazy: %s inherits internal class %s",
ZSTR_VAL(reflection_ce->name), ZSTR_VAL(parent->name));
@@ -285,7 +285,7 @@ ZEND_API zend_object *zend_object_make_lazy(zend_object *obj,
ZVAL_UNDEF(p);
Z_PROP_FLAG_P(p) = 0;
- zend_property_info *prop_info = obj->ce->properties_info_table[i];
+ const zend_property_info *prop_info = obj->ce->properties_info_table[i];
if (prop_info) {
zval *p = &obj->properties_table[OBJ_PROP_TO_NUM(prop_info->offset)];
Z_PROP_FLAG_P(p) = IS_PROP_UNINIT | IS_PROP_LAZY;
@@ -417,7 +417,7 @@ ZEND_API zend_object *zend_lazy_object_mark_as_initialized(zend_object *obj)
/* Revert initializer effects */
static void zend_lazy_object_revert_init(zend_object *obj, zval *properties_table_snapshot, HashTable *properties_snapshot)
{
- zend_class_entry *ce = obj->ce;
+ const zend_class_entry *ce = obj->ce;
if (ce->default_properties_count) {
ZEND_ASSERT(properties_table_snapshot);
@@ -502,7 +502,7 @@ static zend_object *zend_lazy_object_init_proxy(zend_object *obj)
/* Snapshot declared properties */
if (obj->ce->default_properties_count) {
- zval *properties_table = obj->properties_table;
+ const zval *properties_table = obj->properties_table;
properties_table_snapshot = emalloc(sizeof(*properties_table_snapshot) * obj->ce->default_properties_count);
for (int i = 0; i < obj->ce->default_properties_count; i++) {
@@ -514,7 +514,7 @@ static zend_object *zend_lazy_object_init_proxy(zend_object *obj)
zval retval;
zval zobj;
HashTable *named_params = NULL;
- zend_fcall_info_cache *initializer = &info->u.initializer.fcc;
+ const zend_fcall_info_cache *initializer = &info->u.initializer.fcc;
zend_object *instance = NULL;
ZVAL_OBJ(&zobj, obj);
@@ -623,7 +623,7 @@ ZEND_API zend_object *zend_lazy_object_init(zend_object *obj)
return info->u.instance;
}
- zend_class_entry *ce = obj->ce;
+ const zend_class_entry *ce = obj->ce;
#if ZEND_DEBUG
ZEND_ASSERT(zend_class_constants_are_updated(ce));
@@ -652,7 +652,7 @@ ZEND_API zend_object *zend_lazy_object_init(zend_object *obj)
/* Snapshot declared properties and initialize lazy properties to their
* default value */
if (ce->default_properties_count) {
- zval *default_properties_table = CE_DEFAULT_PROPERTIES_TABLE(ce);
+ const zval *default_properties_table = CE_DEFAULT_PROPERTIES_TABLE(ce);
zval *properties_table = obj->properties_table;
properties_table_snapshot = emalloc(sizeof(*properties_table_snapshot) * ce->default_properties_count);
@@ -773,7 +773,7 @@ zend_object *zend_lazy_object_clone(zend_object *old_obj)
return zend_objects_clone_obj(old_obj);
}
- zend_lazy_object_info *info = zend_lazy_object_get_info(old_obj);
+ const zend_lazy_object_info *info = zend_lazy_object_get_info(old_obj);
zend_class_entry *ce = old_obj->ce;
zend_object *new_proxy = zend_objects_new(ce);
diff --git a/Zend/zend_lazy_objects.h b/Zend/zend_lazy_objects.h
index 8e66ee3facd..f517d9b31a5 100644
--- a/Zend/zend_lazy_objects.h
+++ b/Zend/zend_lazy_objects.h
@@ -58,8 +58,8 @@ typedef struct _zend_fcall_info_cache zend_fcall_info_cache;
ZEND_API bool zend_class_can_be_lazy(const zend_class_entry *ce);
ZEND_API zend_object *zend_object_make_lazy(zend_object *obj,
- zend_class_entry *class_type, zval *initializer_zv,
- zend_fcall_info_cache *initializer_fcc, zend_lazy_object_flags_t flags);
+ zend_class_entry *reflection_ce, const zval *initializer_zv,
+ const zend_fcall_info_cache *initializer_fcc, zend_lazy_object_flags_t flags);
ZEND_API zend_object *zend_lazy_object_init(zend_object *obj);
ZEND_API zend_object *zend_lazy_object_mark_as_initialized(zend_object *obj);