Merge branch 'master' into 0.9.x
Conflicts: classes/Memcached_DataObject.php
This commit is contained in:
commit
a9d8359208
|
@ -60,18 +60,17 @@ class Memcached_DataObject extends DB_DataObject
|
|||
if ($i) {
|
||||
return $i;
|
||||
} else {
|
||||
$i = DB_DataObject::staticGet($cls, $k, $v);
|
||||
if ($i) {
|
||||
// DB_DataObject's in-process lookup cache interferes with GC
|
||||
// to cause massive memory leaks in long-running processes.
|
||||
if (php_sapi_name() == 'cli') {
|
||||
$i->_clear_cache();
|
||||
$i = DB_DataObject::factory($cls);
|
||||
if (empty($i)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Now store it into the shared memcached, if present...
|
||||
$result = $i->get($k, $v);
|
||||
if ($result) {
|
||||
$i->encache();
|
||||
}
|
||||
return $i;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,6 +262,18 @@ class Memcached_DataObject extends DB_DataObject
|
|||
return new ArrayWrapper($cached);
|
||||
}
|
||||
|
||||
function cleanup()
|
||||
{
|
||||
global $_DB_DATAOBJECT;
|
||||
|
||||
if (isset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid])) {
|
||||
unset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid]);
|
||||
}
|
||||
if (isset($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid])) {
|
||||
unset($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid]);
|
||||
}
|
||||
}
|
||||
|
||||
// We overload so that 'SET NAMES "utf8"' is called for
|
||||
// each connection
|
||||
|
||||
|
|
|
@ -191,6 +191,14 @@ class NoticeListItem extends Widget
|
|||
|
||||
function show()
|
||||
{
|
||||
if (empty($this->notice)) {
|
||||
common_log(LOG_WARNING, "Trying to show missing notice; skipping.");
|
||||
return;
|
||||
} else if (empty($this->profile)) {
|
||||
common_log(LOG_WARNING, "Trying to show missing profile (" . $this->notice->profile_id . "); skipping.");
|
||||
return;
|
||||
}
|
||||
|
||||
$this->showStart();
|
||||
if (Event::handle('StartShowNoticeItem', array($this))) {
|
||||
$this->showNotice();
|
||||
|
|
Loading…
Reference in New Issue
Block a user