Rearrange Memcached_DataObject::staticGet() to avoid "only variables can be passed by reference" warnings when DB lookup fails and we return false.
(We need to keep it returning a reference because the extlib parent class is stuck in PHP 4-land and uses references everywhere, including this function's return value. Yuck!) Also changed pkeyGet to drop the reference, since it doesn't have an upstream equivalent.
This commit is contained in:
parent
6f5b765c97
commit
85554d0840
@ -90,17 +90,16 @@ class Memcached_DataObject extends DB_DataObject
|
|||||||
unset($i);
|
unset($i);
|
||||||
}
|
}
|
||||||
$i = Memcached_DataObject::getcached($cls, $k, $v);
|
$i = Memcached_DataObject::getcached($cls, $k, $v);
|
||||||
if ($i !== false) { // false == cache miss
|
if ($i === false) { // false == cache miss
|
||||||
return $i;
|
|
||||||
} else {
|
|
||||||
$i = DB_DataObject::factory($cls);
|
$i = DB_DataObject::factory($cls);
|
||||||
if (empty($i)) {
|
if (empty($i)) {
|
||||||
return false;
|
$i = false;
|
||||||
|
return $i;
|
||||||
}
|
}
|
||||||
$result = $i->get($k, $v);
|
$result = $i->get($k, $v);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
|
// Hit!
|
||||||
$i->encache();
|
$i->encache();
|
||||||
return $i;
|
|
||||||
} else {
|
} else {
|
||||||
// save the fact that no such row exists
|
// save the fact that no such row exists
|
||||||
$c = self::memcache();
|
$c = self::memcache();
|
||||||
@ -108,12 +107,16 @@ class Memcached_DataObject extends DB_DataObject
|
|||||||
$ck = self::cachekey($cls, $k, $v);
|
$ck = self::cachekey($cls, $k, $v);
|
||||||
$c->set($ck, null);
|
$c->set($ck, null);
|
||||||
}
|
}
|
||||||
return false;
|
$i = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return $i;
|
||||||
}
|
}
|
||||||
|
|
||||||
function &pkeyGet($cls, $kv)
|
/**
|
||||||
|
* @fixme Should this return false on lookup fail to match staticGet?
|
||||||
|
*/
|
||||||
|
function pkeyGet($cls, $kv)
|
||||||
{
|
{
|
||||||
$i = Memcached_DataObject::multicache($cls, $kv);
|
$i = Memcached_DataObject::multicache($cls, $kv);
|
||||||
if ($i !== false) { // false == cache miss
|
if ($i !== false) { // false == cache miss
|
||||||
|
Loading…
x
Reference in New Issue
Block a user