From: espen Date: Fri, 3 Mar 2006 19:10:21 +0000 (+0000) Subject: Existing methods are not cleared when an define-type-generic is reevaluated X-Git-Url: https://git.distorted.org.uk/~mdw/clg/commitdiff_plain/c96779a5019b4a7788b92baa95552d47413ab161 Existing methods are not cleared when an define-type-generic is reevaluated --- diff --git a/glib/ffi.lisp b/glib/ffi.lisp index de33318..8d5b098 100644 --- a/glib/ffi.lisp +++ b/glib/ffi.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: ffi.lisp,v 1.28 2006-02-26 16:12:25 espen Exp $ +;; $Id: ffi.lisp,v 1.29 2006-03-03 19:10:21 espen Exp $ (in-package "GLIB") @@ -348,8 +348,9 @@ (find (first lambda-list) '(&optional &key &rest &allow-other-keys))) (error "A type generic needs at least one required argument") `(progn - (setf (get ',name 'type-methods) (make-hash-table)) - (setf (get ',name 'built-in-type-hierarchy) ()) + (unless (get ',name 'type-methods) + (setf (get ',name 'type-methods) (make-hash-table)) + (setf (get ',name 'built-in-type-hierarchy) ())) (defun ,name ,lambda-list ,documentation (funcall