summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/map.el
diff options
context:
space:
mode:
authorNicolas Petton <nicolas@petton.fr>2015-06-06 01:08:00 +0200
committerNicolas Petton <nicolas@petton.fr>2015-06-06 01:26:25 +0200
commit8fe836abbd64a8445880184083e1a92f87ef938a (patch)
tree1a936f91e5348308997869944bcd023c913386d1 /lisp/emacs-lisp/map.el
parent5977a07d949a60b66d0f2310fbd4dbd06cd0b9ea (diff)
downloademacs-8fe836abbd64a8445880184083e1a92f87ef938a.tar.gz
Fix a byte-compiler error in map-put and map-delete
* lisp/emacs-lisp/map.el (map-put, map-delete): Ensure that `setq' is called with a symbol.
Diffstat (limited to 'lisp/emacs-lisp/map.el')
-rw-r--r--lisp/emacs-lisp/map.el26
1 files changed, 16 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el
index b10be44c218..897743e5b10 100644
--- a/lisp/emacs-lisp/map.el
+++ b/lisp/emacs-lisp/map.el
@@ -113,11 +113,14 @@ with VALUE.
MAP can be a list, hash-table or array."
(declare (debug t))
- `(progn
- (map--dispatch (m ,map m)
- :list (setq ,map (cons (cons ,key ,value) m))
- :hash-table (puthash ,key ,value m)
- :array (aset m ,key ,value))))
+ (let ((symbol (symbolp map)))
+ `(progn
+ (map--dispatch (m ,map m)
+ :list (if ,symbol
+ (setq ,map (cons (cons ,key ,value) m))
+ (error "Literal lists are not allowed, %s must be a symbol" ',map))
+ :hash-table (puthash ,key ,value m)
+ :array (aset m ,key ,value)))))
(defmacro map-delete (map key)
"In MAP, delete the key KEY if present and return MAP.
@@ -125,11 +128,14 @@ If MAP is an array, store nil at the index KEY.
MAP can be a list, hash-table or array."
(declare (debug t))
- `(progn
- (map--dispatch (m ,map m)
- :list (setq ,map (map--delete-alist m ,key))
- :hash-table (remhash ,key m)
- :array (map--delete-array m ,key))))
+ (let ((symbol (symbolp map)))
+ `(progn
+ (map--dispatch (m ,map m)
+ :list (if ,symbol
+ (setq ,map (map--delete-alist m ,key))
+ (error "Literal lists are not allowed, %s must be a symbol" ',map))
+ :hash-table (remhash ,key m)
+ :array (map--delete-array m ,key)))))
(defun map-nested-elt (map keys &optional default)
"Traverse MAP using KEYS and return the looked up value or DEFAULT if nil.