From bba7e2d90c17a0bdb8f7c3519faa595bb9cb85f3 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Fri, 3 Feb 2006 12:47:00 +0000 Subject: [PATCH] Doing ref. counting before sinking in around method Organization: Straylight/Edgeware From: espen --- gtk/gtkobject.lisp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gtk/gtkobject.lisp b/gtk/gtkobject.lisp index 821fa04..31cbe9f 100644 --- a/gtk/gtkobject.lisp +++ b/gtk/gtkobject.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gtkobject.lisp,v 1.27 2005/04/23 16:48:52 espen Exp $ +;; $Id: gtkobject.lisp,v 1.28 2006/02/03 12:47:00 espen Exp $ (in-package "GTK") @@ -52,13 +52,15 @@ (defclass %object (gobject) (defmethod initialize-instance ((object %object) &rest initargs &key signal) (declare (ignore signal)) (call-next-method) - (reference-foreign (class-of object) (proxy-location object)) (dolist (signal-definition (get-all initargs :signal)) (apply #'signal-connect object signal-definition))) (defmethod initialize-instance :around ((object %object) &rest initargs) (declare (ignore initargs)) (call-next-method) + ;; Add a temorary reference which will be removed when the object is + ;; sinked + (reference-foreign (class-of object) (proxy-location object)) (%object-sink object)) (defbinding %object-sink () nil -- [mdw]