]> git.eshelyaron.com Git - emacs.git/commitdiff
(eieio-copy-parents-into-subclass): Fix inheritance of initargs
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 8 Apr 2015 21:23:50 +0000 (17:23 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 8 Apr 2015 21:23:50 +0000 (17:23 -0400)
Fixes: debbugs:20270
* lisp/emacs-lisp/eieio-core.el (eieio-copy-parents-into-subclass):
Fix inheritance of initargs.

lisp/emacs-lisp/eieio-core.el

index 6fd9c14088e222aaf008a6ec77cd11ca92376c8b..b0aa363679e1891f85b14db398f09678eb8db6c0 100644 (file)
@@ -673,10 +673,9 @@ the new child class."
       (let ((pslots (eieio--class-slots pcv))
             (pinit (eieio--class-initarg-tuples pcv)))
         (dotimes (i (length pslots))
-          (eieio--add-new-slot newc (cl--copy-slot-descriptor (aref pslots i))
-                               (car-safe (car pinit)) nil nil sn)
-          ;; Increment each value.
-          (setq pinit (cdr pinit))
+         (let* ((sd (cl--copy-slot-descriptor (aref pslots i)))
+                 (init (car (rassq (cl--slot-descriptor-name sd) pinit))))
+           (eieio--add-new-slot newc sd init nil nil sn))
           )) ;; while/let
       ;; Now duplicate all the class alloc slots.
       (let ((pcslots (eieio--class-class-slots pcv)))