From b9040a7cc4d9f051f00e3b0d9010971262319d84 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 14 Dec 2009 16:36:01 -0800 Subject: [PATCH] Add destructor on Memcached_DataObject to free DB_DataObject's global storage for an object when that object itself is destroyed. Reduces some, but not all, memory leakage for long-running processes. --- classes/Memcached_DataObject.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 753fe954e0..8fdb56088b 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -23,6 +23,17 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; class Memcached_DataObject extends DB_DataObject { + /** + * Destructor to free global memory resources associated with + * this data object when it's unset or goes out of scope. + * DB_DataObject doesn't do this yet by itself. + */ + function __destruct() + { + $this->free(); + parent::__destruct(); + } + function &staticGet($cls, $k, $v=null) { if (is_null($v)) {