Skip to content

Instantly share code, notes, and snippets.

@dstogov
Last active June 11, 2019 13:23
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/b13163408e0edf337b99b4e634cba38f to your computer and use it in GitHub Desktop.
Save dstogov/b13163408e0edf337b99b4e634cba38f to your computer and use it in GitHub Desktop.
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index b57d446df5..5a1c9c8e79 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -413,7 +413,7 @@ static zend_string *accel_find_interned_string(zend_string *str)
if (!ZCG(counted)) {
if (!ZCG(accelerator_enabled) || accel_activate_add() == FAILURE) {
- return str;
+ return NULL;
}
ZCG(counted) = 1;
}
@@ -658,10 +658,9 @@ static void accel_use_shm_interned_strings(void)
if (ZCSG(interned_strings_saved_top) == NULL) {
accel_copy_permanent_strings(accel_new_interned_string);
} else {
+ ZCG(counted) = 1;
accel_copy_permanent_strings(accel_replace_string_by_shm_permanent);
- if (ZCG(counted)) {
- accel_deactivate_sub();
- }
+ ZCG(counted) = 0;
}
accel_interned_strings_save_state();
@@ -1093,7 +1092,11 @@ char *accel_make_persistent_key(const char *path, int path_length, int *key_len)
cwd_len = ZCG(cwd_key_len) = buf + sizeof(buf) - 1 - res;
cwd = ZCG(cwd_key);
memcpy(ZCG(cwd_key), res, cwd_len + 1);
+ } else {
+ return NULL;
}
+ } else {
+ return NULL;
}
}
}
@@ -1132,7 +1135,11 @@ char *accel_make_persistent_key(const char *path, int path_length, int *key_len)
include_path_len = ZCG(include_path_key_len) = buf + sizeof(buf) - 1 - res;
include_path = ZCG(include_path_key);
memcpy(ZCG(include_path_key), res, include_path_len + 1);
+ } else {
+ return NULL;
}
+ } else {
+ return NULL;
}
}
}
@@ -2169,6 +2176,7 @@ static void accel_reset_pcre_cache(void)
static void accel_activate(void)
{
if (!ZCG(enabled) || !accel_startup_ok) {
+ ZCG(accelerator_enabled) = 0;
return;
}
@@ -2196,6 +2204,7 @@ static void accel_activate(void)
#ifdef HAVE_OPCACHE_FILE_CACHE
if (file_cache_only) {
+ ZCG(accelerator_enabled) = 0;
return;
}
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment