aboutsummaryrefslogtreecommitdiffstats
path: root/geoip
diff options
context:
space:
mode:
Diffstat (limited to 'geoip')
-rw-r--r--geoip/ip.lisp14
1 files changed, 6 insertions, 8 deletions
diff --git a/geoip/ip.lisp b/geoip/ip.lisp
index aae0702..7b6a23e 100644
--- a/geoip/ip.lisp
+++ b/geoip/ip.lisp
@@ -40,13 +40,13 @@
(node-count 0 :read-only t :type fixnum)
(record-size 0 :read-only t :type fixnum)
(ip-version 0 :read-only t :type fixnum)
- (data-offset -1 :type fixnum)
+ (data-offset 0 :read-only t :type fixnum)
(metadata nil))
(defstruct db-reader
(db-ptr)
(head-ptr)
- (data-offset))
+ (data-offset 0 :read-only t :type fixnum))
(defstruct maxmind-database-metadata
(node-count 0 :read-only t :type fixnum)
@@ -161,13 +161,11 @@
(defun mread-pointer (reader length)
(with-slots (db-ptr head-ptr data-offset) reader
- (let* ((target (+ (read-pointer reader length) data-offset))
- (curr-ptr db-ptr)
- (result))
+ (let ((target (+ (read-pointer reader length) data-offset))
+ (curr-ptr db-ptr))
(setf db-ptr (inc-pointer head-ptr target))
- (setf result (mread-data reader))
- (setf db-ptr curr-ptr)
- result)))
+ (prog1 (mread-data reader)
+ (setf db-ptr curr-ptr)))))
(defun mread-data (db-ptr)
(destructuring-bind (type length) (mread-datafield-metadata db-ptr)