Drop name from mysqli_prop_handler (#18498)

It's just not necessary to store this, if we ever need this we can get
this from the hash table.
This commit is contained in:
Niels Dossche 2025-05-05 13:36:26 +02:00 committed by GitHub
parent 940ee1a641
commit c91c6545fe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -75,7 +75,6 @@ typedef zend_result (*mysqli_read_t)(mysqli_object *obj, zval *rv, bool quiet);
typedef zend_result (*mysqli_write_t)(mysqli_object *obj, zval *newval); typedef zend_result (*mysqli_write_t)(mysqli_object *obj, zval *newval);
typedef struct _mysqli_prop_handler { typedef struct _mysqli_prop_handler {
zend_string *name;
mysqli_read_t read_func; mysqli_read_t read_func;
mysqli_write_t write_func; mysqli_write_t write_func;
} mysqli_prop_handler; } mysqli_prop_handler;
@ -294,11 +293,11 @@ zval *mysqli_write_property(zend_object *object, zend_string *name, zval *value,
void mysqli_add_property(HashTable *h, const char *pname, size_t pname_len, mysqli_read_t r_func, mysqli_write_t w_func) { void mysqli_add_property(HashTable *h, const char *pname, size_t pname_len, mysqli_read_t r_func, mysqli_write_t w_func) {
mysqli_prop_handler p; mysqli_prop_handler p;
p.name = zend_string_init_interned(pname, pname_len, 1); zend_string *name = zend_string_init_interned(pname, pname_len, 1);
p.read_func = (r_func) ? r_func : mysqli_read_na; p.read_func = (r_func) ? r_func : mysqli_read_na;
p.write_func = w_func; p.write_func = w_func;
zend_hash_add_mem(h, p.name, &p, sizeof(mysqli_prop_handler)); zend_hash_add_mem(h, name, &p, sizeof(mysqli_prop_handler));
zend_string_release_ex(p.name, 1); zend_string_release_ex(name, 1);
} }
/* }}} */ /* }}} */
@ -344,17 +343,17 @@ HashTable *mysqli_object_get_debug_info(zend_object *object, int *is_temp)
{ {
mysqli_object *obj = php_mysqli_fetch_object(object); mysqli_object *obj = php_mysqli_fetch_object(object);
HashTable *retval, *props = obj->prop_handler; HashTable *retval, *props = obj->prop_handler;
mysqli_prop_handler *entry; zend_string *name;
retval = zend_new_array(zend_hash_num_elements(props) + 1); retval = zend_new_array(zend_hash_num_elements(props) + 1);
ZEND_HASH_MAP_FOREACH_PTR(props, entry) { ZEND_HASH_MAP_FOREACH_STR_KEY(props, name) {
zval rv; zval rv;
zval *value; zval *value;
value = mysqli_read_property(object, entry->name, BP_VAR_IS, 0, &rv); value = mysqli_read_property(object, name, BP_VAR_IS, 0, &rv);
if (value != &EG(uninitialized_zval)) { if (value != &EG(uninitialized_zval)) {
zend_hash_add(retval, entry->name, value); zend_hash_add(retval, name, value);
} }
} ZEND_HASH_FOREACH_END(); } ZEND_HASH_FOREACH_END();