Skip to content

Instantly share code, notes, and snippets.

@dstogov
Created June 14, 2019 07:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dstogov/585a65e3ab6899f8d19a0ba848a65041 to your computer and use it in GitHub Desktop.
Save dstogov/585a65e3ab6899f8d19a0ba848a65041 to your computer and use it in GitHub Desktop.
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index b0aace8ff0..6b65eef2d7 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -1880,16 +1880,22 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type)
int key_length;
int from_shared_memory; /* if the script we've got is stored in SHM */
- if (!file_handle->filename || !ZCG(enabled) || !accel_startup_ok) {
+ if (!file_handle->filename || !ZCG(accelerator_enabled)) {
/* The Accelerator is disabled, act as if without the Accelerator */
+ ZCG(cache_opline) = NULL;
+ ZCG(cache_persistent_script) = NULL;
return accelerator_orig_compile_file(file_handle, type);
} else if (file_cache_only) {
+ ZCG(cache_opline) = NULL;
+ ZCG(cache_persistent_script) = NULL;
return file_cache_compile_file(file_handle, type);
} else if (!ZCG(accelerator_enabled) ||
(ZCSG(restart_in_progress) && accel_restart_is_active())) {
if (ZCG(accel_directives).file_cache) {
return file_cache_compile_file(file_handle, type);
}
+ ZCG(cache_opline) = NULL;
+ ZCG(cache_persistent_script) = NULL;
return accelerator_orig_compile_file(file_handle, type);
}
@@ -1916,10 +1922,14 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type)
/* try to find cached script by key */
key = accel_make_persistent_key(file_handle->filename, strlen(file_handle->filename), &key_length);
if (!key) {
+ ZCG(cache_opline) = NULL;
+ ZCG(cache_persistent_script) = NULL;
return accelerator_orig_compile_file(file_handle, type);
}
persistent_script = zend_accel_hash_str_find(&ZCSG(hash), key, key_length);
} else if (UNEXPECTED(is_stream_path(file_handle->filename) && !is_cacheable_stream_path(file_handle->filename))) {
+ ZCG(cache_opline) = NULL;
+ ZCG(cache_persistent_script) = NULL;
return accelerator_orig_compile_file(file_handle, type);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment