From f78b74a8758b7afd26327a01b54db60a1f9288a9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 27 Oct 2009 20:13:07 +0000 Subject: [PATCH] Rewrites to fix cache class --- inc/classes/cachesystem.class.php | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php index 6a1992dd9d..ad755f5dc5 100644 --- a/inc/classes/cachesystem.class.php +++ b/inc/classes/cachesystem.class.php @@ -101,7 +101,7 @@ class CacheSystem { // Pre-fetch cache here if found if ($this->isCacheReadable()) $this->getArrayFromCache(); - //* DEBUG: */ print($cacheName.'='.intval($this->isCacheReadable()).'/'.(is_writeable($this->fqfn)).'/'.($this->extensionVersionMatches('cache')).'
'); + //* DEBUG: */ print($cacheName.'='.intval($this->isCacheReadable()).'/'.intval(is_writeable($this->fqfn)).'/'.intval($this->extensionVersionMatches('cache')).'
'); $this->status[$cacheName] = ($this->isCacheReadable() && (is_writeable($this->fqfn)) && ($this->extensionVersionMatches('cache'))); } // END - if //* DEBUG: */ print($cacheName.'='.intval($this->status[$cacheName]).'
'); @@ -114,8 +114,8 @@ class CacheSystem { function init () { // This will destory an existing cache file! if ($this->ret == $this->statusDone) { - // Mark it as no longer readable - $this->markCacheAsUnreadable(); + // Reset read status + $this->resetCacheReadStatus(); // Create file if ($this->isCacheReadable()) changeMode($this->fqfn, 0666); @@ -129,10 +129,11 @@ class CacheSystem { } } - // Mark the cache as unreadable - function markCacheAsUnreadable () { + // Reset the read status + function resetCacheReadStatus () { unset($this->readable[$this->name]); unset($GLOBALS['file_readable'][$this->fqfn]); + unset($this->status[$this->name]); } function addRow ($data) { @@ -176,6 +177,9 @@ class CacheSystem { // Close file add destroy handler fclose($this->pointer); + // Reset readable status + $this->resetCacheReadStatus(); + // Set rights if ($this->isCacheReadable()) changeMode($this->fqfn, 0666); @@ -221,6 +225,7 @@ class CacheSystem { } // END - if } else { // Cache file not found or not readable + debug_report_bug($this->name); addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".sprintf(getMessage('CACHE_CANNOT_LOAD'), $this->fqfn)); // Try to remove it @@ -230,8 +235,8 @@ class CacheSystem { // Destroy an existing cache file function removeCacheFile ($removeArray = false, $force = false) { - // Remove cached value of readable cache - $this->markCacheAsUnreadable(); + // Reset read status + $this->resetCacheReadStatus(); // Debug message /* DEBUG: */ logDebugMessage(__METHOD__, __LINE__, sprintf("%s should be removed.", $this->name)); @@ -262,6 +267,9 @@ class CacheSystem { // Remove cache file from system removeFile($this->fqfn); + // Reset read status + $this->resetCacheReadStatus(); + // Shall we remove the array from memory? if ($removeArray === true) { // Debug message if allowed -- 2.30.2