From b9040a7cc4d9f051f00e3b0d9010971262319d84 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 14 Dec 2009 16:36:01 -0800 Subject: 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(+) (limited to 'classes/Memcached_DataObject.php') 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)) { -- cgit v1.2.3-54-g00ecf From 945661d9426ef90a6ff6feaab3733c6b569dac7e Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 15 Dec 2009 12:33:17 -0500 Subject: take out DB_DataObject destructor --- classes/Memcached_DataObject.php | 1 - 1 file changed, 1 deletion(-) (limited to 'classes/Memcached_DataObject.php') diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 8fdb56088..360fb4424 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -31,7 +31,6 @@ class Memcached_DataObject extends DB_DataObject function __destruct() { $this->free(); - parent::__destruct(); } function &staticGet($cls, $k, $v=null) -- cgit v1.2.3-54-g00ecf From 22f02b35ad58030a093563a7df683962b4d165c5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 15 Dec 2009 12:38:15 -0500 Subject: call DB_DataObject::__destruct() if it exists --- classes/Memcached_DataObject.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'classes/Memcached_DataObject.php') diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 360fb4424..70e9e351d 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -28,9 +28,13 @@ class Memcached_DataObject extends DB_DataObject * 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(); + if (method_exists('DB_DataObject', '__destruct')) { + parent::__destruct(); + } } function &staticGet($cls, $k, $v=null) -- cgit v1.2.3-54-g00ecf