summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2008-06-20 06:37:14 +0000
committerGreg Beaver <cellog@php.net>2008-06-20 06:37:14 +0000
commitaff3636d9cdb4b83a1792192ffbae23dd1378179 (patch)
treef6342ece56baa350ba0f3d57576a0d621d2eb791 /ext
parent7cc6b9f3f58c59d051319fc4f4b7f35bdc514951 (diff)
downloadphp-git-aff3636d9cdb4b83a1792192ffbae23dd1378179.tar.gz
minor performance improvement
Diffstat (limited to 'ext')
-rwxr-xr-xext/phar/phar.pharbin15252 -> 15252 bytes
-rw-r--r--ext/phar/util.c7
2 files changed, 7 insertions, 0 deletions
diff --git a/ext/phar/phar.phar b/ext/phar/phar.phar
index 70cdf8b9e2..170c4a8860 100755
--- a/ext/phar/phar.phar
+++ b/ext/phar/phar.phar
Binary files differ
diff --git a/ext/phar/util.c b/ext/phar/util.c
index 30bb5a0d41..8f39cd61ab 100644
--- a/ext/phar/util.c
+++ b/ext/phar/util.c
@@ -251,6 +251,12 @@ char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_d
fname = zend_get_executed_filename(TSRMLS_C);
fname_len = strlen(fname);
+ if (PHAR_G(last_phar) && !memcmp(fname, "phar://", 7) && fname_len - 7 >= PHAR_G(last_phar_name_len) && !memcmp(fname + 7, PHAR_G(last_phar_name), PHAR_G(last_phar_name_len))) {
+ arch = estrndup(PHAR_G(last_phar_name), PHAR_G(last_phar_name_len));
+ arch_len = PHAR_G(last_phar_name_len);
+ phar = PHAR_G(last_phar);
+ goto splitted;
+ }
if (fname_len < 7 || memcmp(fname, "phar://", 7) || SUCCESS != phar_split_fname(fname, strlen(fname), &arch, &arch_len, &entry, &entry_len, 1, 0 TSRMLS_CC)) {
return phar_save_resolve_path(filename, filename_len TSRMLS_CC);
}
@@ -262,6 +268,7 @@ char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_d
efree(arch);
return phar_save_resolve_path(filename, filename_len TSRMLS_CC);
}
+splitted:
if (pphar) {
*pphar = phar;
}