From 67fc06759b7a8abe40564c798b2fccacdbde01d6 Mon Sep 17 00:00:00 2001 From: arshidkv12 Date: Thu, 26 Mar 2026 11:08:47 +0530 Subject: [PATCH 1/4] ext/spl: Use zend_hash_add() for missing array keys --- ext/xml/xml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/xml/xml.c b/ext/xml/xml.c index 8b3733fd70a05..12443f5103a75 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -557,7 +557,7 @@ static void xml_add_to_info(xml_parser *parser, zend_string *name) if ((element = zend_hash_find(arr, name)) == NULL) { zval values; array_init(&values); - element = zend_hash_update(arr, name, &values); + element = zend_hash_add(arr, name, &values); } add_next_index_long(element, parser->curtag); From bb5e2fa9113fe4ea576166e55e95fd808eda129f Mon Sep 17 00:00:00 2001 From: arshidkv12 Date: Thu, 26 Mar 2026 12:57:33 +0530 Subject: [PATCH 2/4] ext/spl: Use zend_hash_add() for missing array keys --- ext/xml/xml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/xml/xml.c b/ext/xml/xml.c index 12443f5103a75..fa3afa781005e 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -554,7 +554,7 @@ static void xml_add_to_info(xml_parser *parser, zend_string *name) SEPARATE_ARRAY(Z_REFVAL(parser->info)); zend_array *arr = Z_ARRVAL_P(Z_REFVAL(parser->info)); - if ((element = zend_hash_find(arr, name)) == NULL) { + if ((element = zend_hash_lookup(arr, name)) == NULL) { zval values; array_init(&values); element = zend_hash_add(arr, name, &values); From e6d031ca3d932d462c4ed86e82d354b6a72af468 Mon Sep 17 00:00:00 2001 From: arshidkv12 Date: Thu, 26 Mar 2026 13:58:10 +0530 Subject: [PATCH 3/4] ext/xml: Use zend_hash_lookup --- ext/xml/xml.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ext/xml/xml.c b/ext/xml/xml.c index fa3afa781005e..0bf8467364fd2 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -554,10 +554,11 @@ static void xml_add_to_info(xml_parser *parser, zend_string *name) SEPARATE_ARRAY(Z_REFVAL(parser->info)); zend_array *arr = Z_ARRVAL_P(Z_REFVAL(parser->info)); - if ((element = zend_hash_lookup(arr, name)) == NULL) { - zval values; - array_init(&values); - element = zend_hash_add(arr, name, &values); + element = zend_hash_lookup(arr, name); + + if (Z_TYPE_P(element) == IS_NULL) { + + array_init(element); } add_next_index_long(element, parser->curtag); From 428663011f1c74046a3c80b1785f7711cd128016 Mon Sep 17 00:00:00 2001 From: arshidkv12 Date: Thu, 26 Mar 2026 13:58:49 +0530 Subject: [PATCH 4/4] ext/xml: Use zend_hash_lookup --- ext/xml/xml.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ext/xml/xml.c b/ext/xml/xml.c index 0bf8467364fd2..968fe4695467f 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -557,7 +557,6 @@ static void xml_add_to_info(xml_parser *parser, zend_string *name) element = zend_hash_lookup(arr, name); if (Z_TYPE_P(element) == IS_NULL) { - array_init(element); }