Extract get-table from get-table-entry. Maintain fill pointer at last entry.
authorGerd Flaig <gefla@pond.sub.org>
Sat, 10 Oct 2009 17:14:07 +0000 (19:14 +0200)
committerGerd Flaig <gefla@pond.sub.org>
Sat, 10 Oct 2009 17:14:07 +0000 (19:14 +0200)
xdump.lisp

index c2f866e7e672136c1b5f6dc2a51278e6d87bb1fe..5d68b1d4aa3bc54bbe5c58f54e360b964720c223 100644 (file)
 (defvar *meta-index* (make-array 5) "meta slot symbol by meta table column index")
 (defvar *meta-meta* (make-array 5))
 
 (defvar *meta-index* (make-array 5) "meta slot symbol by meta table column index")
 (defvar *meta-meta* (make-array 5))
 
-(defun get-table-entry (table-name index)
+(defun get-table (table-name)
   (let* ((table-index (gethash table-name *index-by-name*))
         (table (aref *table-by-index* table-index)))
   (let* ((table-index (gethash table-name *index-by-name*))
         (table (aref *table-by-index* table-index)))
-    (aref (table-entries table) index)))
+    table))
+
+(defun get-table-entry (table-name index)
+    (aref (table-entries (get-table table-name)) index))
 
 (defclass xdump-parser ()
   ((line-parser :accessor line-parser :initform nil)
 
 (defclass xdump-parser ()
   ((line-parser :accessor line-parser :initform nil)
                 (entries (table-entries table)))
             ; extend array if necessary
             (unless (> (fill-pointer entries) index)
                 (entries (table-entries table)))
             ; extend array if necessary
             (unless (> (fill-pointer entries) index)
-              (adjust-array entries (* 2 index) :fill-pointer t))
+              (adjust-array entries (* 2 index) :fill-pointer index :initial-element nil))
             (setf (aref entries index) e)
             (loop
                for item in entry
             (setf (aref entries index) e)
             (loop
                for item in entry