Commit 016a1f1bc9e for php.net
commit 016a1f1bc9e06fc94e83f914a7f0bbb81b3cd4ae
Author: Jorg Adam Sowa <jorg.sowa@gmail.com>
Date: Mon Jul 6 19:20:19 2026 +0200
Zend: reuse zend_get_unqualified_name() in zend_add_const_name_literal() (#22598)
Avoid duplicating the namespace-separator split logic.
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index c75333e6d3c..d9fa3a1cb50 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 */