aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/emacs-lisp/eieio-base.el32
1 files changed, 15 insertions, 17 deletions
diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 9f9f870a757..75709ddc0a8 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -360,32 +360,30 @@ Second, any text properties will be stripped from strings."
360 proposed-value)))) 360 proposed-value))))
361 ;; For hash-tables and vectors, the top-level `read' will not 361 ;; For hash-tables and vectors, the top-level `read' will not
362 ;; "look inside" member values, so we need to do that 362 ;; "look inside" member values, so we need to do that
363 ;; explicitly. 363 ;; explicitly. Because `eieio-override-prin1' is recursive in
364 ;; the case of hash-tables and vectors, we recurse
365 ;; `eieio-persistent-validate/fix-slot-value' here as well.
364 ((hash-table-p proposed-value) 366 ((hash-table-p proposed-value)
365 (maphash 367 (maphash
366 (lambda (key value) 368 (lambda (key value)
367 (cond ((class-p (car-safe value)) 369 (setf (gethash key proposed-value)
368 (setf (gethash key proposed-value) 370 (if (class-p (car-safe value))
369 (eieio-persistent-convert-list-to-object 371 (eieio-persistent-convert-list-to-object
370 value))) 372 value)
371 ((and (consp value) 373 (eieio-persistent-validate/fix-slot-value
372 (eq (car value) 'quote)) 374 class slot value))))
373 (setf (gethash key proposed-value)
374 (cadr value)))))
375 proposed-value) 375 proposed-value)
376 proposed-value) 376 proposed-value)
377 377
378 ((vectorp proposed-value) 378 ((vectorp proposed-value)
379 (dotimes (i (length proposed-value)) 379 (dotimes (i (length proposed-value))
380 (let ((val (aref proposed-value i))) 380 (let ((val (aref proposed-value i)))
381 (cond ((class-p (car-safe val)) 381 (aset proposed-value i
382 (aset proposed-value i 382 (if (class-p (car-safe val))
383 (eieio-persistent-convert-list-to-object 383 (eieio-persistent-convert-list-to-object
384 (aref proposed-value i)))) 384 val)
385 ((and (consp val) 385 (eieio-persistent-validate/fix-slot-value
386 (eq (car val) 'quote)) 386 class slot val)))))
387 (aset proposed-value i
388 (cadr val))))))
389 proposed-value) 387 proposed-value)
390 388
391 ((stringp proposed-value) 389 ((stringp proposed-value)