From cbaf42593d04d34785dbf732786f89d7f13fdb27 Mon Sep 17 00:00:00 2001 From: Chris Smith <chris@jalakai.co.uk> Date: Sat, 23 Feb 2008 03:55:39 +0100 Subject: [PATCH] Fix for FS#1334, see also FS#1090 FS#1090 ensured DW would never rebuild instructions in the same run by forcing subsequent instruction requests to use the version cached on the first request. That introduced problems when the caching of the instructions failed (FS#1334). This patch allows subsequent rebuilds when cache storage failed. darcs-hash:20080223025539-d26fc-26202a049a6969816553d950a2bb8f71a02ae76e.gz --- inc/cache.php | 6 +++--- inc/parserutils.php | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/inc/cache.php b/inc/cache.php index 3c5dc058e..50ab799e7 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -105,10 +105,10 @@ class cache { * cache $data * * @param string $data the data to be cached - * @return none + * @return bool true on success, false otherwise */ function storeCache($data) { - io_savefile($this->cache, $data); + return io_savefile($this->cache, $data); } /** @@ -286,6 +286,6 @@ class cache_instructions extends cache_parser { } function storeCache($instructions) { - io_savefile($this->cache,serialize($instructions)); + return io_savefile($this->cache,serialize($instructions)); } } diff --git a/inc/parserutils.php b/inc/parserutils.php index 66d1ae13c..c65185239 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -183,8 +183,11 @@ function p_cached_instructions($file,$cacheonly=false,$id='') { } else if (@file_exists($file)) { // no cache - do some work $ins = p_get_instructions(io_readfile($file)); - $cache->storeCache($ins); - $run[$file] = true; // we won't rebuild these instructions in the same run again + if ($cache->storeCache($ins)) { + $run[$file] = true; // we won't rebuild these instructions in the same run again + } else { + msg('Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.',-1); + } return $ins; } -- GitLab