]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/eieio-core.el (eieio-oset-default): Catch the unexpected
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 9 Feb 2015 15:49:43 +0000 (10:49 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 9 Feb 2015 15:49:43 +0000 (10:49 -0500)
case where the default value would be re-interpreted as a form!

lisp/ChangeLog
lisp/emacs-lisp/eieio-core.el

index 9ca0c306e44df19f5459ccb1b95270248326bf73..d90249828071ef8b4dae43be5362cdf1997a4781 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/eieio-core.el (eieio-oset-default): Catch the unexpected
+       case where the default value would be re-interpreted as a form!
+
 2015-02-09  Christopher Genovese  <genovese@cmu.edu>  (tiny change)
 
        * help-fns.el (help-fns--signature): Keep doc for keymap.
index fa8fefa1df09c0f6c4aa93406d4668f9051046fc..e71c54d412317909ff6859678e7919d1775696f9 100644 (file)
@@ -1010,6 +1010,8 @@ Fills in the default value in CLASS' in SLOT with VALUE."
           (signal 'invalid-slot-name (list (eieio--class-symbol class) slot)))
       (eieio--validate-slot-value class c value slot)
       ;; Set this into the storage for defaults.
+      (if (eieio-eval-default-p value)
+          (error "Can't set default to a sexp that gets evaluated again"))
       (setcar (nthcdr (- c (eval-when-compile eieio--object-num-slots))
                       (eieio--class-public-d class))
               value)