From c2c72d4bf4369bd02dc4491808a7ed59177f770e Mon Sep 17 00:00:00 2001 From: Dmitry Kalyanov Date: Thu, 26 Feb 2009 01:37:53 +0300 Subject: [PATCH] Made (release nil) no-op instead of error. Added shorthand for using --- glib/gobject.foreign.lisp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/glib/gobject.foreign.lisp b/glib/gobject.foreign.lisp index 79d010f..ce6d42f 100644 --- a/glib/gobject.foreign.lisp +++ b/glib/gobject.foreign.lisp @@ -2,13 +2,15 @@ (defgeneric release (object)) +(defmethod release ((object null))) + (defun release* (&rest objects) (declare (dynamic-extent objects)) (loop for object in objects do (release object))) -(defmacro using ((var expr) &body body) +(defmacro using ((var &optional (expr var)) &body body) `(let ((,var ,expr)) (unwind-protect (progn ,@body) @@ -16,7 +18,7 @@ (defun using-expand (bindings body) (if bindings - (destructuring-bind (var expr) (first bindings) + (destructuring-bind (var &optional (expr var)) (ensure-list (first bindings)) `(let ((,var ,expr)) (unwind-protect ,(using-expand (rest bindings) body) -- 1.7.10.4