summaryrefslogtreecommitdiff
path: root/program/include/rcube_cache.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcube_cache.php')
-rw-r--r--program/include/rcube_cache.php12
1 files changed, 5 insertions, 7 deletions
diff --git a/program/include/rcube_cache.php b/program/include/rcube_cache.php
index 01f620381..807d20c0e 100644
--- a/program/include/rcube_cache.php
+++ b/program/include/rcube_cache.php
@@ -45,7 +45,6 @@ class rcube_cache
private $packed;
private $index;
private $cache = array();
- private $cache_keys = array();
private $cache_changes = array();
private $cache_sums = array();
@@ -167,7 +166,7 @@ class rcube_cache
$this->cache = array();
$this->cache_changed = false;
$this->cache_changes = array();
- $this->cache_keys = array();
+ $this->cache_sums = array();
}
// Remove keys by name prefix
else if ($prefix_mode) {
@@ -175,7 +174,7 @@ class rcube_cache
if (strpos($k, $key) === 0) {
$this->cache[$k] = null;
$this->cache_changes[$k] = false;
- unset($this->cache_keys[$k]);
+ unset($this->cache_sums[$k]);
}
}
}
@@ -183,7 +182,7 @@ class rcube_cache
else {
$this->cache[$key] = null;
$this->cache_changes[$key] = false;
- unset($this->cache_keys[$key]);
+ unset($this->cache_sums[$key]);
}
// Remove record(s) from the backend
@@ -274,7 +273,7 @@ class rcube_cache
}
else {
$sql_result = $this->db->limitquery(
- "SELECT cache_id, data, cache_key".
+ "SELECT data, cache_key".
" FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key = ?".
@@ -296,7 +295,6 @@ class rcube_cache
$this->cache[$key] = $data;
$this->cache_sums[$key] = $md5sum;
- $this->cache_keys[$key] = $sql_arr['cache_id'];
}
else {
$this->cache[$key] = null;
@@ -325,7 +323,7 @@ class rcube_cache
return $this->add_record($this->ckey($key), $data);
}
- $key_exists = $this->cache_keys[$key];
+ $key_exists = array_key_exists($key, $this->cache_sums);
$key = $this->prefix . '.' . $key;
// Remove NULL rows (here we don't need to check if the record exist)