]> git.eshelyaron.com Git - emacs.git/commitdiff
* Fix some comp-vec logic
authorAndrea Corallo <akrl@sdf.org>
Thu, 25 Feb 2021 19:46:27 +0000 (20:46 +0100)
committerAndrea Corallo <akrl@sdf.org>
Thu, 25 Feb 2021 20:00:07 +0000 (21:00 +0100)
* lisp/emacs-lisp/comp.el (comp-vec-length, comp-vec-append)
(comp-vec-prepend): Fix logic.
(comp-vec-aref): Fix indentation.

lisp/emacs-lisp/comp.el

index 40c1dfd831b9af5e22ea04994e0a85a1f9d5d194..ddf3f049e8ccf0ab93035a0b8d5ad2f1b2c9370f 100644 (file)
@@ -617,7 +617,7 @@ Useful to hook into pass checkers.")
 
 (defsubst comp-vec-length (vec)
   "Return the number of elements of VEC."
-  (+ (comp-vec-beg vec) (comp-vec-end vec)))
+  (- (comp-vec-end vec) (comp-vec-beg vec)))
 
 (defsubst comp-vec--verify-idx (vec idx)
   "Check idx is in bounds for VEC."
@@ -628,21 +628,21 @@ Useful to hook into pass checkers.")
   "Return the element of VEC at index IDX."
   (declare (gv-setter (lambda (val)
                         `(comp-vec--verify-idx ,vec ,idx)
-                       `(puthash ,idx ,val (comp-vec-data ,vec)))))
+                        `(puthash ,idx ,val (comp-vec-data ,vec)))))
   (comp-vec--verify-idx vec idx)
   (gethash idx (comp-vec-data vec)))
 
 (defsubst comp-vec-append (vec elt)
   "Append ELT into VEC.
 ELT is returned."
-  (puthash (comp-vec-end vec) elt (comp-vec-aref vec))
+  (puthash (comp-vec-end vec) elt (comp-vec-data vec))
   (cl-incf (comp-vec-end vec))
   elt)
 
 (defsubst comp-vec-prepend (vec elt)
   "Prepend ELT into VEC.
 ELT is returned."
-  (puthash (comp-vec-beg vec) elt (comp-vec-aref vec))
+  (puthash (1- (comp-vec-beg vec)) elt (comp-vec-data vec))
   (cl-decf (comp-vec-beg vec))
   elt)