From fbd8535f466b4d22cd56e54edff0c5d2526976fe Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Tue, 24 Mar 2026 15:11:04 +0000 Subject: [PATCH] ext/spl: add some const qualifiers --- ext/spl/php_spl.c | 8 ++++---- ext/spl/spl_array.c | 2 +- ext/spl/spl_dllist.c | 4 ++-- ext/spl/spl_functions.c | 16 +++++++--------- ext/spl/spl_functions.h | 8 ++++---- ext/spl/spl_heap.c | 2 +- ext/spl/spl_observer.c | 2 +- 7 files changed, 20 insertions(+), 22 deletions(-) diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index e705a1e303a25..0c64d815dc812 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -64,7 +64,7 @@ static zend_class_entry * spl_find_ce_by_name(zend_string *name, bool autoload) PHP_FUNCTION(class_parents) { zval *obj; - zend_class_entry *parent_class, *ce; + zend_class_entry *ce; bool autoload = true; /* We do not use Z_PARAM_OBJ_OR_STR here to be able to exclude int, float, and bool which are bogus class names */ @@ -86,7 +86,7 @@ PHP_FUNCTION(class_parents) } array_init(return_value); - parent_class = ce->parent; + const zend_class_entry *parent_class = ce->parent; while (parent_class) { spl_add_class_name(return_value, parent_class, 0, 0); parent_class = parent_class->parent; @@ -99,7 +99,7 @@ PHP_FUNCTION(class_implements) { zval *obj; bool autoload = true; - zend_class_entry *ce; + const zend_class_entry *ce; /* We do not use Z_PARAM_OBJ_OR_STR here to be able to exclude int, float, and bool which are bogus class names */ if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|b", &obj, &autoload) == FAILURE) { @@ -128,7 +128,7 @@ PHP_FUNCTION(class_uses) { zval *obj; bool autoload = true; - zend_class_entry *ce; + const zend_class_entry *ce; /* We do not use Z_PARAM_OBJ_OR_STR here to be able to exclude int, float, and bool which are bogus class names */ if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|b", &obj, &autoload) == FAILURE) { diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index 3d6870a7ee953..efbe331104ab6 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -157,7 +157,7 @@ static void spl_array_object_free_storage(zend_object *object) static zend_object *spl_array_object_new_ex(zend_class_entry *class_type, zend_object *orig, int clone_orig) { spl_array_object *intern; - zend_class_entry *parent = class_type; + const zend_class_entry *parent = class_type; int inherited = 0; intern = zend_object_alloc(sizeof(spl_array_object), parent); diff --git a/ext/spl/spl_dllist.c b/ext/spl/spl_dllist.c index 5eceff88dfab6..c72cae38a9ceb 100644 --- a/ext/spl/spl_dllist.c +++ b/ext/spl/spl_dllist.c @@ -304,7 +304,7 @@ static void spl_dllist_object_free_storage(zend_object *object) /* {{{ */ static zend_object *spl_dllist_object_new_ex(zend_class_entry *class_type, zend_object *orig, int clone_orig) /* {{{ */ { spl_dllist_object *intern; - zend_class_entry *parent = class_type; + const zend_class_entry *parent = class_type; int inherited = 0; intern = zend_object_alloc(sizeof(spl_dllist_object), parent); @@ -316,7 +316,7 @@ static zend_object *spl_dllist_object_new_ex(zend_class_entry *class_type, zend_ intern->traverse_position = 0; if (orig) { - spl_dllist_object *other = spl_dllist_from_obj(orig); + const spl_dllist_object *other = spl_dllist_from_obj(orig); if (clone_orig) { intern->llist = spl_ptr_llist_init(); diff --git a/ext/spl/spl_functions.c b/ext/spl/spl_functions.c index e7ecbc33f92ef..7b7991a121708 100644 --- a/ext/spl/spl_functions.c +++ b/ext/spl/spl_functions.c @@ -21,12 +21,12 @@ #include "php.h" /* {{{ spl_add_class_name */ -void spl_add_class_name(zval *list, zend_class_entry *pce, int allow, int ce_flags) +void spl_add_class_name(zval *list, const zend_class_entry *pce, int allow, int ce_flags) { if (!allow || (allow > 0 && (pce->ce_flags & ce_flags)) || (allow < 0 && !(pce->ce_flags & ce_flags))) { - zval *tmp; + const zval *tmp = zend_hash_find(Z_ARRVAL_P(list), pce->name); - if ((tmp = zend_hash_find(Z_ARRVAL_P(list), pce->name)) == NULL) { + if (tmp == NULL) { zval t; ZVAL_STR_COPY(&t, pce->name); zend_hash_add(Z_ARRVAL_P(list), pce->name, &t); @@ -36,7 +36,7 @@ void spl_add_class_name(zval *list, zend_class_entry *pce, int allow, int ce_fla /* }}} */ /* {{{ spl_add_interfaces */ -void spl_add_interfaces(zval *list, zend_class_entry * pce, int allow, int ce_flags) +void spl_add_interfaces(zval *list, const zend_class_entry *pce, int allow, int ce_flags) { if (pce->num_interfaces) { ZEND_ASSERT(pce->ce_flags & ZEND_ACC_LINKED); @@ -48,12 +48,10 @@ void spl_add_interfaces(zval *list, zend_class_entry * pce, int allow, int ce_fl /* }}} */ /* {{{ spl_add_traits */ -void spl_add_traits(zval *list, zend_class_entry * pce, int allow, int ce_flags) +void spl_add_traits(zval *list, const zend_class_entry *pce, int allow, int ce_flags) { - zend_class_entry *trait; - for (uint32_t num_traits = 0; num_traits < pce->num_traits; num_traits++) { - trait = zend_fetch_class_by_name(pce->trait_names[num_traits].name, + const zend_class_entry *trait = zend_fetch_class_by_name(pce->trait_names[num_traits].name, pce->trait_names[num_traits].lc_name, ZEND_FETCH_CLASS_TRAIT); ZEND_ASSERT(trait); spl_add_class_name(list, trait, allow, ce_flags); @@ -63,7 +61,7 @@ void spl_add_traits(zval *list, zend_class_entry * pce, int allow, int ce_flags) /* {{{ spl_add_classes */ -void spl_add_classes(zend_class_entry *pce, zval *list, bool sub, int allow, int ce_flags) +void spl_add_classes(const zend_class_entry *pce, zval *list, bool sub, int allow, int ce_flags) { ZEND_ASSERT(pce); spl_add_class_name(list, pce, allow, ce_flags); diff --git a/ext/spl/spl_functions.h b/ext/spl/spl_functions.h index eb81a8b8f818c..ca92a237169ee 100644 --- a/ext/spl/spl_functions.h +++ b/ext/spl/spl_functions.h @@ -24,10 +24,10 @@ allow > 0: allow all that match and mask ce_flags allow < 0: disallow all that match and mask ce_flags */ -void spl_add_class_name(zval * list, zend_class_entry * pce, int allow, int ce_flags); -void spl_add_interfaces(zval * list, zend_class_entry * pce, int allow, int ce_flags); -void spl_add_traits(zval * list, zend_class_entry * pce, int allow, int ce_flags); -void spl_add_classes(zend_class_entry *pce, zval *list, bool sub, int allow, int ce_flags); +void spl_add_class_name(zval * list, const zend_class_entry *pce, int allow, int ce_flags); +void spl_add_interfaces(zval * list, const zend_class_entry *pce, int allow, int ce_flags); +void spl_add_traits(zval * list, const zend_class_entry *pce, int allow, int ce_flags); +void spl_add_classes(const zend_class_entry *pce, zval *list, bool sub, int allow, int ce_flags); void spl_set_private_debug_info_property(const zend_class_entry *ce, const char *property, size_t property_len, HashTable *debug_info, zval *value); diff --git a/ext/spl/spl_heap.c b/ext/spl/spl_heap.c index afe3489e89843..eef25b9e35933 100644 --- a/ext/spl/spl_heap.c +++ b/ext/spl/spl_heap.c @@ -412,7 +412,7 @@ static void spl_heap_object_free_storage(zend_object *object) /* {{{ */ static zend_object *spl_heap_object_new_ex(zend_class_entry *class_type, zend_object *orig, int clone_orig) /* {{{ */ { spl_heap_object *intern; - zend_class_entry *parent = class_type; + const zend_class_entry *parent = class_type; int inherited = 0; intern = zend_object_alloc(sizeof(spl_heap_object), parent); diff --git a/ext/spl/spl_observer.c b/ext/spl/spl_observer.c index 801c091fbb42d..68f132069a7c5 100644 --- a/ext/spl/spl_observer.c +++ b/ext/spl/spl_observer.c @@ -257,7 +257,7 @@ static void spl_object_storage_addall(spl_SplObjectStorage *intern, spl_SplObjec static zend_object *spl_object_storage_new_ex(zend_class_entry *class_type, zend_object *orig) /* {{{ */ { spl_SplObjectStorage *intern; - zend_class_entry *parent = class_type; + const zend_class_entry *parent = class_type; intern = zend_object_alloc(sizeof(spl_SplObjectStorage), parent); intern->pos = 0;