summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/eieio-base.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2017-12-12 19:43:33 -0800
committerGlenn Morris <rgm@gnu.org>2017-12-12 19:43:33 -0800
commit0beba8d16419ac592dd3dd7af7c177d80d490c4d (patch)
treed515a266d3593f934abfe43b82fd4703816b69ac /lisp/emacs-lisp/eieio-base.el
parent92ca51cc5e9d30818f5abf60a5a13f08f2ea7e96 (diff)
parentb0369d0536cd510e8b7120ccf04ee98c4e323b59 (diff)
downloademacs-0beba8d16419ac592dd3dd7af7c177d80d490c4d.tar.gz
Merge from origin/emacs-26
b0369d0536 Import the latest IVD_Sequences.txt cd53b6399b Fix dired-do-compress when tar doesn't default to stdin (B... 51911dae14 Suppress warnings during elisp completion macroexpansion a36a090a95 * lisp/progmodes/verilog-mode.el (verilog-mode): Fix typo ... 6a6e8e6e8d Make tramp-interrupt-process more robust 5bcd468a9e Make quail-input-method work when inhibit-read-only is non... 87baf1242e Fix 'fontset-name-p' d23158777d Fix fontset documentation inconsistencies for bug#29630 a829cb8c8b Remove sentence from child frames section in Elisp manual ad491c80e4 Avoid crashes in 'font-at' after 'set-fontset-font' c73d2cdfd7 * lisp/files-x.el (connection-local-set-profile-variables)... cefca2b8ac Add /etc/ssl/cert.pem to gnutls-trustfiles for macOS 122e7264b8 Fix tool-tip display when display margins are non-zero by ... e1cc2037a9 Handle hash tables and vectors when reading/writing EIEIO ... cda219c3df Improve interactive debugging commands in xdisp.c 1056b3cbcd Fix calculation of continuation_pixel_width in display engine 90e20804f5 Improve documentation of 'save-abbrevs'. 14f0230a48 Improve documentation of Dired 161b0e5493 * lisp/bookmark.el (bookmark-alist): Doc fix. (Bug#29551)
Diffstat (limited to 'lisp/emacs-lisp/eieio-base.el')
-rw-r--r--lisp/emacs-lisp/eieio-base.el20
1 files changed, 20 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 58dcd09d7ea..0241f273958 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -354,6 +354,26 @@ Second, any text properties will be stripped from strings."
proposed-value))
(t
proposed-value))))
+ ;; For hash-tables and vectors, the top-level `read' will not
+ ;; "look inside" member values, so we need to do that
+ ;; explicitly.
+ ((hash-table-p proposed-value)
+ (maphash
+ (lambda (key value)
+ (when (class-p (car-safe value))
+ (setf (gethash key proposed-value)
+ (eieio-persistent-convert-list-to-object
+ value))))
+ proposed-value)
+ proposed-value)
+
+ ((vectorp proposed-value)
+ (dotimes (i (length proposed-value))
+ (when (class-p (car-safe (aref proposed-value i)))
+ (aset proposed-value i
+ (eieio-persistent-convert-list-to-object
+ (aref proposed-value i)))))
+ proposed-value)
((stringp proposed-value)
;; Else, check for strings, remove properties.