[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master d320ec5: * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Fix last,
Stefan Monnier <=