[php-src] master: Zend: reuse zend_get_unqualified_name() in zend_add_const_name_literal() (#22598)

Jorg Adam Sowa via GitHub <[email protected]>
Newsgroups gmane.comp.php.cvs.general
Message-ID <[email protected]>
Author: Jorg Adam Sowa (jorgsowa)
Committer: GitHub (web-flow)
Pusher: Girgias
Date: 2026-07-06T18:20:19+01:00

Commit: https://github.com/php/php-src/commit/016a1f1bc9e06fc94e83f914a7f0bbb81b3cd4ae
Raw diff: https://github.com/php/php-src/commit/016a1f1bc9e06fc94e83f914a7f0bbb81b3cd4ae.diff

Zend: reuse zend_get_unqualified_name() in zend_add_const_name_literal() (#22598)

Avoid duplicating the namespace-separator split logic.

Changed paths:
  M  Zend/zend_compile.c


Diff:

diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index c75333e6d3c5..d9fa3a1cb504 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -673,12 +673,10 @@ static int zend_add_const_name_literal(zend_string *name, bool unqualified) /* {
 
 	int ret = zend_add_literal_string(&name);
 
-	size_t ns_len = 0, after_ns_len = ZSTR_LEN(name);
-	const char *after_ns = zend_memrchr(ZSTR_VAL(name), '\\', ZSTR_LEN(name));
-	if (after_ns) {
-		after_ns += 1;
-		ns_len = after_ns - ZSTR_VAL(name) - 1;
-		after_ns_len = ZSTR_LEN(name) - ns_len - 1;
+	const char *after_ns;
+	size_t after_ns_len;
+	if (zend_get_unqualified_name(name, &after_ns, &after_ns_len)) {
+		size_t ns_len = after_ns - ZSTR_VAL(name) - 1;
 
 		/* lowercased namespace name & original constant name */
 		tmp_name = zend_string_init(ZSTR_VAL(name), ZSTR_LEN(name), 0);
@@ -690,6 +688,7 @@ static int zend_add_const_name_literal(zend_string *name, bool unqualified) /* {
 		}
 	} else {
 		after_ns = ZSTR_VAL(name);
+		after_ns_len = ZSTR_LEN(name);
 	}
 
 	/* original unqualified constant name */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.