Zend: constify various parameters in zend_object_handlers and zend_lazy_objects (#19019)

This commit is contained in:
Tim Düsterhus 2025-07-03 16:32:10 +02:00 committed by GitHub
parent 840dc1981f
commit f61ae0001c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 25 additions and 25 deletions

View file

@ -93,7 +93,7 @@ void zend_lazy_objects_destroy(zend_lazy_objects_store *store)
zend_hash_destroy(&store->infos);
}
static void zend_lazy_object_set_info(zend_object *obj, zend_lazy_object_info *info)
static void zend_lazy_object_set_info(const zend_object *obj, zend_lazy_object_info *info)
{
ZEND_ASSERT(zend_object_is_lazy(obj));
@ -102,7 +102,7 @@ static void zend_lazy_object_set_info(zend_object *obj, zend_lazy_object_info *i
(void)zv;
}
static zend_lazy_object_info* zend_lazy_object_get_info(zend_object *obj)
static zend_lazy_object_info* zend_lazy_object_get_info(const zend_object *obj)
{
ZEND_ASSERT(zend_object_is_lazy(obj));
@ -112,7 +112,7 @@ static zend_lazy_object_info* zend_lazy_object_get_info(zend_object *obj)
return info;
}
static bool zend_lazy_object_has_stale_info(zend_object *obj)
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);
}
@ -154,18 +154,18 @@ zend_object* zend_lazy_object_get_instance(zend_object *obj)
return obj;
}
zend_lazy_object_flags_t zend_lazy_object_get_flags(zend_object *obj)
zend_lazy_object_flags_t zend_lazy_object_get_flags(const zend_object *obj)
{
return zend_lazy_object_get_info(obj)->flags;
}
void zend_lazy_object_del_info(zend_object *obj)
void zend_lazy_object_del_info(const zend_object *obj)
{
zend_result res = zend_hash_index_del(&EG(lazy_objects_store).infos, obj->handle);
ZEND_ASSERT(res == SUCCESS);
}
bool zend_lazy_object_decr_lazy_props(zend_object *obj)
bool zend_lazy_object_decr_lazy_props(const zend_object *obj)
{
ZEND_ASSERT(zend_object_is_lazy(obj));
ZEND_ASSERT(!zend_lazy_object_initialized(obj));
@ -183,7 +183,7 @@ bool zend_lazy_object_decr_lazy_props(zend_object *obj)
* Making objects lazy
*/
ZEND_API bool zend_class_can_be_lazy(zend_class_entry *ce)
ZEND_API bool zend_class_can_be_lazy(const zend_class_entry *ce)
{
/* Internal classes are not supported */
if (UNEXPECTED(ce->type == ZEND_INTERNAL_CLASS && ce != zend_standard_class_def)) {
@ -444,7 +444,7 @@ static void zend_lazy_object_revert_init(zend_object *obj, zval *properties_tabl
OBJ_EXTRA_FLAGS(obj) |= IS_OBJ_LAZY_UNINITIALIZED;
}
static bool zend_lazy_object_compatible(zend_object *real_object, zend_object *lazy_object)
static bool zend_lazy_object_compatible(const zend_object *real_object, const zend_object *lazy_object)
{
if (EXPECTED(real_object->ce == lazy_object->ce)) {
return true;

View file

@ -57,7 +57,7 @@ typedef struct _zend_property_info zend_property_info;
typedef struct _zend_fcall_info zend_fcall_info;
typedef struct _zend_fcall_info_cache zend_fcall_info_cache;
ZEND_API bool zend_class_can_be_lazy(zend_class_entry *ce);
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);
@ -68,39 +68,39 @@ 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_object *zend_lazy_object_get_instance(zend_object *obj);
zend_lazy_object_flags_t zend_lazy_object_get_flags(zend_object *obj);
void zend_lazy_object_del_info(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);
ZEND_API HashTable *zend_lazy_object_get_properties(zend_object *object);
zend_object *zend_lazy_object_clone(zend_object *old_obj);
HashTable *zend_lazy_object_debug_info(zend_object *object, int *is_temp);
HashTable *zend_lazy_object_get_gc(zend_object *zobj, zval **table, int *n);
bool zend_lazy_object_decr_lazy_props(zend_object *obj);
bool zend_lazy_object_decr_lazy_props(const zend_object *obj);
void zend_lazy_object_realize(zend_object *obj);
ZEND_API zend_property_info *zend_lazy_object_get_property_info_for_slot(zend_object *obj, zval *slot);
static zend_always_inline bool zend_object_is_lazy(zend_object *obj)
static zend_always_inline bool zend_object_is_lazy(const zend_object *obj)
{
return (OBJ_EXTRA_FLAGS(obj) & (IS_OBJ_LAZY_UNINITIALIZED | IS_OBJ_LAZY_PROXY));
}
static zend_always_inline bool zend_object_is_lazy_proxy(zend_object *obj)
static zend_always_inline bool zend_object_is_lazy_proxy(const zend_object *obj)
{
return (OBJ_EXTRA_FLAGS(obj) & IS_OBJ_LAZY_PROXY);
}
static zend_always_inline bool zend_lazy_object_initialized(zend_object *obj)
static zend_always_inline bool zend_lazy_object_initialized(const zend_object *obj)
{
return !(OBJ_EXTRA_FLAGS(obj) & IS_OBJ_LAZY_UNINITIALIZED);
}
/* True if accessing a lazy prop on obj mandates a call to
* zend_lazy_object_init() */
static zend_always_inline bool zend_lazy_object_must_init(zend_object *obj)
static zend_always_inline bool zend_lazy_object_must_init(const zend_object *obj)
{
return zend_object_is_lazy(obj);
}
static inline bool zend_lazy_object_initialize_on_serialize(zend_object *obj)
static inline bool zend_lazy_object_initialize_on_serialize(const zend_object *obj)
{
return !(zend_lazy_object_get_flags(obj) & ZEND_LAZY_OBJECT_SKIP_INITIALIZATION_ON_SERIALIZE);
}

View file

@ -289,7 +289,7 @@ static zend_never_inline int is_protected_compatible_scope(const zend_class_entr
}
/* }}} */
static zend_never_inline zend_property_info *zend_get_parent_private_property(zend_class_entry *scope, const zend_class_entry *ce, zend_string *member) /* {{{ */
static zend_never_inline zend_property_info *zend_get_parent_private_property(const zend_class_entry *scope, const zend_class_entry *ce, zend_string *member) /* {{{ */
{
zval *zv;
zend_property_info *prop_info;
@ -1823,7 +1823,7 @@ static zend_always_inline zend_function *zend_get_user_call_function(zend_class_
}
/* }}} */
ZEND_API ZEND_COLD zend_never_inline void zend_bad_method_call(zend_function *fbc, zend_string *method_name, zend_class_entry *scope) /* {{{ */
ZEND_API ZEND_COLD zend_never_inline void zend_bad_method_call(const zend_function *fbc, const zend_string *method_name, const zend_class_entry *scope) /* {{{ */
{
zend_throw_error(NULL, "Call to %s method %s::%s() from %s%s",
zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(method_name),
@ -1833,7 +1833,7 @@ ZEND_API ZEND_COLD zend_never_inline void zend_bad_method_call(zend_function *fb
}
/* }}} */
ZEND_API ZEND_COLD zend_never_inline void zend_abstract_method_call(zend_function *fbc) /* {{{ */
ZEND_API ZEND_COLD zend_never_inline void zend_abstract_method_call(const zend_function *fbc) /* {{{ */
{
zend_throw_error(NULL, "Cannot call abstract method %s::%s()",
ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
@ -2090,14 +2090,14 @@ ZEND_API zval *zend_std_get_static_property(zend_class_entry *ce, zend_string *p
return zend_std_get_static_property_with_info(ce, property_name, type, &prop_info);
}
ZEND_API ZEND_COLD bool zend_std_unset_static_property(zend_class_entry *ce, zend_string *property_name) /* {{{ */
ZEND_API ZEND_COLD bool zend_std_unset_static_property(const zend_class_entry *ce, const zend_string *property_name) /* {{{ */
{
zend_throw_error(NULL, "Attempt to unset static property %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
return 0;
}
/* }}} */
static ZEND_COLD zend_never_inline void zend_bad_constructor_call(zend_function *constructor, zend_class_entry *scope) /* {{{ */
static ZEND_COLD zend_never_inline void zend_bad_constructor_call(const zend_function *constructor, const zend_class_entry *scope) /* {{{ */
{
if (scope) {
zend_throw_error(NULL, "Call to %s %s::%s() from scope %s",

View file

@ -249,7 +249,7 @@ ZEND_API void zend_class_init_statics(zend_class_entry *ce);
ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, zend_string *function_name_strval, const zval *key);
ZEND_API zval *zend_std_get_static_property_with_info(zend_class_entry *ce, zend_string *property_name, int type, struct _zend_property_info **prop_info);
ZEND_API zval *zend_std_get_static_property(zend_class_entry *ce, zend_string *property_name, int type);
ZEND_API ZEND_COLD bool zend_std_unset_static_property(zend_class_entry *ce, zend_string *property_name);
ZEND_API ZEND_COLD bool zend_std_unset_static_property(const zend_class_entry *ce, const zend_string *property_name);
ZEND_API zend_function *zend_std_get_constructor(zend_object *object);
ZEND_API struct _zend_property_info *zend_get_property_info(const zend_class_entry *ce, zend_string *member, int silent);
ZEND_API HashTable *zend_std_get_properties(zend_object *object);
@ -272,8 +272,8 @@ ZEND_API int zend_std_compare_objects(zval *o1, zval *o2);
ZEND_API zend_result zend_std_get_closure(zend_object *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr, bool check_only);
/* Use zend_std_get_properties_ex() */
ZEND_API HashTable *rebuild_object_properties_internal(zend_object *zobj);
ZEND_API ZEND_COLD zend_never_inline void zend_bad_method_call(zend_function *fbc, zend_string *method_name, zend_class_entry *scope);
ZEND_API ZEND_COLD zend_never_inline void zend_abstract_method_call(zend_function *fbc);
ZEND_API ZEND_COLD zend_never_inline void zend_bad_method_call(const zend_function *fbc, const zend_string *method_name, const zend_class_entry *scope);
ZEND_API ZEND_COLD zend_never_inline void zend_abstract_method_call(const zend_function *fbc);
static zend_always_inline HashTable *zend_std_get_properties_ex(zend_object *object)
{