Issue #2332427 by neclimdul: Fixed APCUBackend makes incorrect assumptions about apc_fetch return type.

8.0.x
Nathaniel Catchpole 2014-09-10 10:29:25 +01:00
parent ea561c1082
commit f98fd49d73
1 changed files with 10 additions and 6 deletions

View File

@ -109,10 +109,12 @@ class ApcuBackend implements CacheBackendInterface {
$result = apc_fetch(array_keys($map));
$cache = array();
foreach ($result as $key => $item) {
$item = $this->prepareItem($item, $allow_invalid);
if ($item) {
$cache[$map[$key]] = $item;
if ($result) {
foreach ($result as $key => $item) {
$item = $this->prepareItem($item, $allow_invalid);
if ($item) {
$cache[$map[$key]] = $item;
}
}
}
unset($result);
@ -358,8 +360,10 @@ class ApcuBackend implements CacheBackendInterface {
foreach (array('deletions', 'invalidations') as $type) {
if ($query_tags[$type]) {
$result = apc_fetch($query_tags[$type]);
static::$tagCache[$type] = array_merge(static::$tagCache[$type], $result);
$checksum[$type] += array_sum($result);
if ($result) {
static::$tagCache[$type] = array_merge(static::$tagCache[$type], $result);
$checksum[$type] += array_sum($result);
}
}
}