diff options
| author | Stefan Monnier | 2015-04-08 17:23:50 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2015-04-08 17:23:50 -0400 |
| commit | 215e5bf0cf10b519838cc9d658caa35d5cbc4da6 (patch) | |
| tree | 84a80b24f46611efd70e5d15a8673f134ff42f45 | |
| parent | a480a51f2425c0b0787ab36779ae2e7ca7c6b527 (diff) | |
| download | emacs-215e5bf0cf10b519838cc9d658caa35d5cbc4da6.tar.gz emacs-215e5bf0cf10b519838cc9d658caa35d5cbc4da6.zip | |
(eieio-copy-parents-into-subclass): Fix inheritance of initargs
Fixes: debbugs:20270
* lisp/emacs-lisp/eieio-core.el (eieio-copy-parents-into-subclass):
Fix inheritance of initargs.
| -rw-r--r-- | lisp/emacs-lisp/eieio-core.el | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 6fd9c14088e..b0aa363679e 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el | |||
| @@ -673,10 +673,9 @@ the new child class." | |||
| 673 | (let ((pslots (eieio--class-slots pcv)) | 673 | (let ((pslots (eieio--class-slots pcv)) |
| 674 | (pinit (eieio--class-initarg-tuples pcv))) | 674 | (pinit (eieio--class-initarg-tuples pcv))) |
| 675 | (dotimes (i (length pslots)) | 675 | (dotimes (i (length pslots)) |
| 676 | (eieio--add-new-slot newc (cl--copy-slot-descriptor (aref pslots i)) | 676 | (let* ((sd (cl--copy-slot-descriptor (aref pslots i))) |
| 677 | (car-safe (car pinit)) nil nil sn) | 677 | (init (car (rassq (cl--slot-descriptor-name sd) pinit)))) |
| 678 | ;; Increment each value. | 678 | (eieio--add-new-slot newc sd init nil nil sn)) |
| 679 | (setq pinit (cdr pinit)) | ||
| 680 | )) ;; while/let | 679 | )) ;; while/let |
| 681 | ;; Now duplicate all the class alloc slots. | 680 | ;; Now duplicate all the class alloc slots. |
| 682 | (let ((pcslots (eieio--class-class-slots pcv))) | 681 | (let ((pcslots (eieio--class-class-slots pcv))) |