@@ -1216,6 +1216,13 @@ static void zend_accel_add_key(char *key, unsigned int key_length, zend_accel_ha
1216
1216
}
1217
1217
}
1218
1218
1219
+ static zend_always_inline zend_bool is_phar_file (zend_string * filename )
1220
+ {
1221
+ return filename && ZSTR_LEN (filename ) >= sizeof (".phar" ) &&
1222
+ !memcmp (ZSTR_VAL (filename ) + ZSTR_LEN (filename ) - (sizeof (".phar" )- 1 ), ".phar" , sizeof (".phar" )- 1 ) &&
1223
+ !strstr (ZSTR_VAL (filename ), "://" );
1224
+ }
1225
+
1219
1226
#ifdef HAVE_OPCACHE_FILE_CACHE
1220
1227
static zend_persistent_script * store_script_in_file_cache (zend_persistent_script * new_persistent_script )
1221
1228
{
@@ -1240,10 +1247,7 @@ static zend_persistent_script *store_script_in_file_cache(zend_persistent_script
1240
1247
1241
1248
zend_shared_alloc_destroy_xlat_table ();
1242
1249
1243
- new_persistent_script -> is_phar =
1244
- new_persistent_script -> script .filename &&
1245
- strstr (ZSTR_VAL (new_persistent_script -> script .filename ), ".phar" ) &&
1246
- !strstr (ZSTR_VAL (new_persistent_script -> script .filename ), "://" );
1250
+ new_persistent_script -> is_phar = is_phar_file (new_persistent_script -> script .filename );
1247
1251
1248
1252
/* Consistency check */
1249
1253
if ((char * )new_persistent_script -> mem + new_persistent_script -> size != (char * )ZCG (mem )) {
@@ -1359,10 +1363,7 @@ static zend_persistent_script *cache_script_in_shared_memory(zend_persistent_scr
1359
1363
1360
1364
zend_shared_alloc_destroy_xlat_table ();
1361
1365
1362
- new_persistent_script -> is_phar =
1363
- new_persistent_script -> script .filename &&
1364
- strstr (ZSTR_VAL (new_persistent_script -> script .filename ), ".phar" ) &&
1365
- !strstr (ZSTR_VAL (new_persistent_script -> script .filename ), "://" );
1366
+ new_persistent_script -> is_phar = is_phar_file (new_persistent_script -> script .filename );
1366
1367
1367
1368
/* Consistency check */
1368
1369
if ((char * )new_persistent_script -> mem + new_persistent_script -> size != (char * )ZCG (mem )) {
0 commit comments