From d320ec576d4a90c31e69afcd2bbc5353d5a3bc90 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 27 Apr 2015 16:01:39 -0400 Subject: [PATCH] * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Fix last * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Fix last change. (eieio--class-make): Remove leftover `tag'. --- lisp/emacs-lisp/eieio-core.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 582ac8a6524..92d7234bc73 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el @@ -88,7 +88,7 @@ Currently under control of this var: (cl-defstruct (eieio--class (:constructor nil) - (:constructor eieio--class-make (name &aux (tag 'defclass))) + (:constructor eieio--class-make (name)) (:include cl--class) (:copier nil)) children @@ -292,7 +292,13 @@ See `defclass' for more information." ;; method table breakage, particularly when the users is only ;; byte compiling an EIEIO file. (if oldc - (setf (eieio--class-children newc) (eieio--class-children oldc)) + (progn + (cl-assert (eq newc oldc)) + ;; Reset the fields. + (setf (eieio--class-parents newc) nil) + (setf (eieio--class-slots newc) nil) + (setf (eieio--class-initarg-tuples newc) nil) + (setf (eieio--class-class-slots newc) nil)) ;; If the old class did not exist, but did exist in the autoload map, ;; then adopt those children. This is like the above, but deals with ;; autoloads nicely. -- 2.39.2