summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@status.net>2009-12-14 16:36:01 -0800
committerBrion Vibber <brion@status.net>2009-12-14 16:36:01 -0800
commitb9040a7cc4d9f051f00e3b0d9010971262319d84 (patch)
tree110e62f8cfc638eb03a3292266af050c84ad7036
parent27d0e8f0a411488cd2a09009759078501102c7a1 (diff)
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.
-rw-r--r--classes/Memcached_DataObject.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php
index 753fe954e..8fdb56088 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)) {