* lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Reuse oldc.

This commit is contained in:
Stefan Monnier 2015-04-27 15:33:43 -04:00
parent 1c7f0cdc4c
commit d92e0c58e8

View file

@ -277,12 +277,12 @@ See `defclass' for more information."
(setq eieio-hook nil)
(let* ((oldc (let ((c (eieio--class-v cname))) (if (eieio--class-p c) c)))
(newc (if (and oldc (not (eieio--class-default-object-cache oldc)))
;; The oldc class is a stub setup by eieio-defclass-autoload.
;; Reuse it instead of creating a new one, so that existing
;; references stay valid.
oldc
(eieio--class-make cname)))
(newc (or oldc
;; Reuse `oldc' instead of creating a new one, so that
;; existing references stay valid. E.g. when
;; reloading the file that does the `defclass', we don't
;; want to create a new class object.
(eieio--class-make cname)))
(groups nil) ;; list of groups id'd from slots
(clearparent nil))