emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master d320ec5: * lisp/emacs-lisp/eieio-core.el (eieio-def


From: Stefan Monnier
Subject: [Emacs-diffs] master d320ec5: * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Fix last
Date: Mon, 27 Apr 2015 20:01:46 +0000

branch: master
commit d320ec576d4a90c31e69afcd2bbc5353d5a3bc90
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    * 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 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index 582ac8a..92d7234 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]