summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2008-11-29 23:21:22 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2008-11-29 23:21:22 +0000
commit4f8168c39ae7b97d00a749596c8774cfc82793ef (patch)
tree1594cac0e47220599b2d1180f1c16f33ae154b06 /includes
parentbc719d0c550fe0f6120676481d3ed5e039db4790 (diff)
downloadbrdo-4f8168c39ae7b97d00a749596c8774cfc82793ef.tar.gz
brdo-4f8168c39ae7b97d00a749596c8774cfc82793ef.tar.bz2
#338184 by Damien Tournoud: Remove special workarounds for serialize() in the registry.
Diffstat (limited to 'includes')
-rw-r--r--includes/bootstrap.inc39
-rw-r--r--includes/registry.inc8
2 files changed, 11 insertions, 36 deletions
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index a664fc857..87f533806 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -1480,7 +1480,10 @@ function _registry_check_code($type, $name = NULL) {
static $lookup_cache, $cache_update_needed;
if (!isset($lookup_cache)) {
- $lookup_cache = _registry_get_lookup_cache();
+ $lookup_cache = array();
+ if ($cache = cache_get('lookup_cache', 'cache_registry')) {
+ $lookup_cache = $cache->data;
+ }
}
// When we rebuild the registry, we need to reset this cache so
@@ -1495,7 +1498,7 @@ function _registry_check_code($type, $name = NULL) {
// changes to the lookup cache for this request.
if ($type == REGISTRY_WRITE_LOOKUP_CACHE) {
if ($cache_update_needed) {
- _registry_set_lookup_cache($lookup_cache);
+ cache_set('lookup_cache', $lookup_cache, 'cache_registry');
}
return;
}
@@ -1547,37 +1550,5 @@ function registry_rebuild() {
}
/**
- * Wrapper function to perform array to string conversion of lookup cache.
- */
-function _registry_set_lookup_cache(array $lookup_cache) {
- // Cache a string, not an array, so we can avoid the memory usage hit
- // from serialize() in the cache system.
- $key_value_pairs = array();
- foreach ($lookup_cache as $key => $value) {
- $key_value_pairs[] = "$key|" . ($value ? $value : '');
- }
- return cache_set('lookup_cache', implode(';', $key_value_pairs), 'cache_registry');
-}
-
-/**
- * Wrapper function to perform string to array conversion of lookup cache.
- */
-function _registry_get_lookup_cache() {
- // In _registry_set_lookup_cache, we cache a string, not an array, to avoid
- // serialize() in the cache system. serialize() makes a copy, and thus uses
- // extra memory, which we are trying to avoid.
- $lookup_cache = array();
- if ($cache = cache_get('lookup_cache', 'cache_registry')) {
- // Each item is separated by ';'.
- foreach (explode(';', $cache->data) as $lookup) {
- // Key value pairs are separated by '|'.
- list($resource, $result) = explode('|', $lookup);
- $lookup_cache[$resource] = $result;
- }
- }
- return $lookup_cache;
-}
-
-/**
* @} End of "ingroup registry".
*/
diff --git a/includes/registry.inc b/includes/registry.inc
index e4eb56348..a8a89f217 100644
--- a/includes/registry.inc
+++ b/includes/registry.inc
@@ -72,7 +72,11 @@ function _registry_rebuild() {
$parsed_files = _registry_parse_files($files);
$unchanged_resources = array();
- foreach (_registry_get_lookup_cache() as $key => $file) {
+ $lookup_cache = array();
+ if ($cache = cache_get('lookup_cache', 'cache_registry')) {
+ $lookup_cache = $cache->data;
+ }
+ foreach ($lookup_cache as $key => $file) {
// If the file for this cached resource is carried over unchanged from
// the last registry build, then we can safely re-cache it.
if ($file && in_array($file, array_keys($files)) && !in_array($file, $parsed_files)) {
@@ -87,7 +91,7 @@ function _registry_rebuild() {
// We have some unchanged resources, warm up the cache - no need to pay
// for looking them up again.
if (count($unchanged_resources) > 0) {
- _registry_set_lookup_cache($unchanged_resources);
+ cache_set('lookup_cache', $unchanged_resources, 'cache_registry');
}
}