diff options
author | Greg Beaver <cellog@php.net> | 2008-06-20 06:37:14 +0000 |
---|---|---|
committer | Greg Beaver <cellog@php.net> | 2008-06-20 06:37:14 +0000 |
commit | aff3636d9cdb4b83a1792192ffbae23dd1378179 (patch) | |
tree | f6342ece56baa350ba0f3d57576a0d621d2eb791 /ext | |
parent | 7cc6b9f3f58c59d051319fc4f4b7f35bdc514951 (diff) | |
download | php-git-aff3636d9cdb4b83a1792192ffbae23dd1378179.tar.gz |
minor performance improvement
Diffstat (limited to 'ext')
-rwxr-xr-x | ext/phar/phar.phar | bin | 15252 -> 15252 bytes | |||
-rw-r--r-- | ext/phar/util.c | 7 |
2 files changed, 7 insertions, 0 deletions
diff --git a/ext/phar/phar.phar b/ext/phar/phar.phar Binary files differindex 70cdf8b9e2..170c4a8860 100755 --- a/ext/phar/phar.phar +++ b/ext/phar/phar.phar 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; } |