Commit 9e2841de6aa for php.net
commit 9e2841de6aaa676944f86d5f64aae0fa601059f2
Author: Gina Peter Banyard <girgias@php.net>
Date: Thu Apr 23 20:41:26 2026 +0100
ext/phar: reorganize if branches as content is identical
Just check in advance if we don't have an archive to checkin in the manifest cache.
diff --git a/ext/phar/util.c b/ext/phar/util.c
index f493cc3acee..5057252a601 100644
--- a/ext/phar/util.c
+++ b/ext/phar/util.c
@@ -1088,18 +1088,13 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
}
fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), fname, fname_len);
- if (fd_ptr) {
- fd = *archive = fd_ptr;
-
- PHAR_G(last_phar) = fd;
- PHAR_G(last_phar_name) = fd->fname;
- PHAR_G(last_alias) = fd->alias;
- PHAR_G(last_alias_len) = fd->alias_len;
- return SUCCESS;
+ /* If we didn't find the fname in the alias map, check in the cached manifest to see if we can find it */
+ if (!fd_ptr && PHAR_G(manifest_cached)) {
+ fd_ptr = zend_hash_str_find_ptr(&cached_alias, fname, fname_len);
}
- if (PHAR_G(manifest_cached) && NULL != (fd_ptr = zend_hash_str_find_ptr(&cached_alias, fname, fname_len))) {
+ if (fd_ptr) {
fd = *archive = fd_ptr;
PHAR_G(last_phar) = fd;