Fixed.
[riece] / lisp / riece-cache.el
index 545af38..27423e3 100644 (file)
@@ -1,4 +1,4 @@
-;;; riece-cache.el --- LRU based cache management
+;;; riece-cache.el --- LRU cache
 ;; Copyright (C) 1998-2005 Daiki Ueno
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 (defalias 'riece-make-cache 'riece-cache-make-map)
 
 (defun riece-cache-contains (map key)
+  "Return t if MAP contains an entry whose key is KEY."
   (intern-soft key (riece-cache-map-hash-obarray map)))
 
 (defun riece-cache-get (map key)
+  "Return the value associated with KEY in MAP.
+If KEY is not associated in MAP, it returns nil."
   (let ((node (riece-cache-get-node map key)))
     (if node
        (riece-cache-node-value node))))
 
 (defun riece-cache-get-node (map key)
+  "Return a node object associcated with KEY in MAP.
+If KEY is not associated in MAP, it returns nil."
   (let ((symbol (intern-soft key (riece-cache-map-hash-obarray map)))
        previous next last node)
     (when symbol
       node)))
 
 (defun riece-cache-delete (map key)
+  "Remove an entry from MAP whose key is KEY."
   (let ((symbol (intern-soft key (riece-cache-map-hash-obarray map)))
        previous next node)
     (when symbol
       (if (eq (riece-cache-map-first map) node)
          (riece-cache-map-set-first map next))
       (unintern symbol (riece-cache-map-hash-obarray map))
-      (riece-cache-map-set-hash-length map (1- (riece-cache-map-hash-length map)))
+      (riece-cache-map-set-hash-length map
+                                      (1- (riece-cache-map-hash-length map)))
       (riece-cache-node-value node))))
 
 (defun riece-cache-set (map key value)
+  "Associate KEY with VALUE in MAP."
   (let ((node (riece-cache-get-node map key)))
     (if node
        (riece-cache-node-set-value node value)
                                       (1+ (riece-cache-map-hash-length map)))
       (unless (riece-cache-map-first map)
        (riece-cache-map-set-first map node))
-      (if (riece-cache-map-last map)
-         (progn
-           (riece-cache-node-set-next (riece-cache-map-last map) node)
-           (riece-cache-node-set-previous node (riece-cache-map-last map))))
+      (when (riece-cache-map-last map)
+       (riece-cache-node-set-next (riece-cache-map-last map) node)
+       (riece-cache-node-set-previous node (riece-cache-map-last map)))
       (riece-cache-map-set-last map node))))
 
 (provide 'riece-cache)