aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/emacs-lisp/eieio-core.el10
1 files 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:
88 88
89(cl-defstruct (eieio--class 89(cl-defstruct (eieio--class
90 (:constructor nil) 90 (:constructor nil)
91 (:constructor eieio--class-make (name &aux (tag 'defclass))) 91 (:constructor eieio--class-make (name))
92 (:include cl--class) 92 (:include cl--class)
93 (:copier nil)) 93 (:copier nil))
94 children 94 children
@@ -292,7 +292,13 @@ See `defclass' for more information."
292 ;; method table breakage, particularly when the users is only 292 ;; method table breakage, particularly when the users is only
293 ;; byte compiling an EIEIO file. 293 ;; byte compiling an EIEIO file.
294 (if oldc 294 (if oldc
295 (setf (eieio--class-children newc) (eieio--class-children oldc)) 295 (progn
296 (cl-assert (eq newc oldc))
297 ;; Reset the fields.
298 (setf (eieio--class-parents newc) nil)
299 (setf (eieio--class-slots newc) nil)
300 (setf (eieio--class-initarg-tuples newc) nil)
301 (setf (eieio--class-class-slots newc) nil))
296 ;; If the old class did not exist, but did exist in the autoload map, 302 ;; If the old class did not exist, but did exist in the autoload map,
297 ;; then adopt those children. This is like the above, but deals with 303 ;; then adopt those children. This is like the above, but deals with
298 ;; autoloads nicely. 304 ;; autoloads nicely.