From a00ba56aaff960675ed216a015ee9577a7c68cb8 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sun, 30 Jan 2005 14:30:30 +0000 Subject: [PATCH] Added UNSET-USER-DATA Organization: Straylight/Edgeware From: espen --- glib/gobject.lisp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/glib/gobject.lisp b/glib/gobject.lisp index c6bfe26..b07a620 100644 --- a/glib/gobject.lisp +++ b/glib/gobject.lisp @@ -15,7 +15,7 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gobject.lisp,v 1.28 2005-01-12 13:26:03 espen Exp $ +;; $Id: gobject.lisp,v 1.29 2005-01-30 14:30:30 espen Exp $ (in-package "GLIB") @@ -268,22 +268,21 @@ (defbinding object-freeze-notify () nil (defbinding object-thaw-notify () nil (object gobject)) + +;;;; User data + (defbinding %object-set-qdata-full () nil (object gobject) (id quark) (data unsigned-long) (destroy-marshal pointer)) - -;;;; User data - (defun (setf user-data) (data object key) - (%object-set-qdata-full - object (quark-from-object key) + (%object-set-qdata-full object (quark-intern key) (register-user-data data) (callback %destroy-user-data)) data) -;; depecated +;; deprecated (defun (setf object-data) (data object key &key (test #'eq)) (assert (eq test #'eq)) (setf (user-data object key) data)) @@ -293,15 +292,22 @@ (defbinding %object-get-qdata () unsigned-long (id quark)) (defun user-data (object key) - (find-user-data (%object-get-qdata object (quark-from-object key)))) + (find-user-data (%object-get-qdata object (quark-intern key)))) -;; depecated +;; deprecated (defun object-data (object key &key (test #'eq)) (assert (eq test #'eq)) (user-data object key)) (defun user-data-p (object key) - (nth-value 1 (find-user-data (%object-get-qdata object (quark-from-object key))))) + (user-data-exists-p (%object-get-qdata object (quark-intern key)))) + +(defbinding %object-steal-qdata () unsigned-long + (object gobject) + (id quark)) + +(defun unset-user-data (object key) + (destroy-user-data (%object-steal-qdata object (quark-intern key)))) ;;;; -- [mdw]