[PHP-CVS] [php-src] master: Zend: Refactor deduplicate auto-global checks (#22963)

[email protected] (Weilin Du via GitHub) Fri, 31 Jul 2026 16:06:11 +0000
Newsgroups php.cvs
Message-ID <[email protected]>
Author: Weilin Du (LamentXU123)
Committer: GitHub (web-flow)
Pusher: LamentXU123
Date: 2026-08-01T00:06:08+08:00

Commit: https://github.com/php/php-src/commit/39e45a340646b83a8d7c521bf1d7f2778e812e2d
Raw diff: https://github.com/php/php-src/commit/39e45a340646b83a8d7c521bf1d7f2778e812e2d.diff

Zend: Refactor deduplicate auto-global checks (#22963)

Reuse the part of logic which duplicates in two functions.

Changed paths:
  M  Zend/zend_compile.c


Diff:

diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 9c80cccb7cb9..088573a50ee8 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1995,30 +1995,27 @@ static void zend_do_extended_fcall_end(void) /* {{{ */
 }
 /* }}} */
 
-ZEND_API bool zend_is_auto_global_str(const char *name, size_t len) /* {{{ */ {
-	zend_auto_global *auto_global;
+static zend_always_inline bool zend_auto_global_check(zend_auto_global *auto_global)
+{
+	if (auto_global == NULL) {
+		return false;
+	}
 
-	if ((auto_global = zend_hash_str_find_ptr(CG(auto_globals), name, len)) != NULL) {
-		if (auto_global->armed) {
-			auto_global->armed = auto_global->auto_global_callback(auto_global->name);
-		}
-		return 1;
+	if (auto_global->armed) {
+		auto_global->armed = auto_global->auto_global_callback(auto_global->name);
 	}
-	return 0;
+	return true;
+}
+
+ZEND_API bool zend_is_auto_global_str(const char *name, size_t len) /* {{{ */
+{
+	return zend_auto_global_check(zend_hash_str_find_ptr(CG(auto_globals), name, len));
 }
 /* }}} */
 
 ZEND_API bool zend_is_auto_global(zend_string *name) /* {{{ */
 {
-	zend_auto_global *auto_global;
-
-	if ((auto_global = zend_hash_find_ptr(CG(auto_globals), name)) != NULL) {
-		if (auto_global->armed) {
-			auto_global->armed = auto_global->auto_global_callback(auto_global->name);
-		}
-		return 1;
-	}
-	return 0;
+	return zend_auto_global_check(zend_hash_find_ptr(CG(auto_globals), name));
 }
 /* }}} */