Update of /project/elephant/cvsroot/elephant/src In directory common-lisp.net:/tmp/cvs-serv7729/src
Modified Files: collections.lisp Log Message: new license, should return values on setf
Date: Sun Aug 29 22:36:49 2004 Author: blee
Index: elephant/src/collections.lisp diff -u elephant/src/collections.lisp:1.5 elephant/src/collections.lisp:1.6 --- elephant/src/collections.lisp:1.5 Sun Aug 29 09:48:04 2004 +++ elephant/src/collections.lisp Sun Aug 29 22:36:48 2004 @@ -12,6 +12,10 @@ ;;; Copyright (c) 2004 by Andrew Blumberg and Ben Lee ;;; ablumberg@common-lisp.net blee@common-lisp.net ;;; +;;; This program is released under the following license +;;; ("GPL"). For differenct licensing terms, contact the +;;; copyright holders. +;;; ;;; This program is free software; you can redistribute it ;;; and/or modify it under the terms of the GNU General ;;; Public License as published by the Free Software @@ -53,12 +57,14 @@ (defmethod get-value (key (ht btree)) (declare (optimize (speed 3) (safety 0) (space 3))) (buffer-write-int (oid ht) *key-buf*) - (let ((key-length (serialize key *key-buf*))) + (let* ((key-length (serialize key *key-buf*)) + (buf (db-get-key-buffered + (controller-db *store-controller*) + (buffer-stream-buffer *key-buf*) + key-length))) (declare (type fixnum key-length)) - (deserialize (db-get-key-buffered - (controller-db *store-controller*) - (buffer-stream-buffer *key-buf*) - key-length)))) + (if buf (values (deserialize buf) T) + (values nil nil))))
(defmethod (setf get-value) (value key (ht btree)) (declare (optimize (speed 3) (safety 0))) @@ -69,7 +75,8 @@ (buffer-stream-buffer *key-buf*) key-length (buffer-stream-buffer *out-buf*) val-length :transaction *current-transaction* - :auto-commit *auto-commit*))) + :auto-commit *auto-commit*) + value))
(defmethod remove-kv (key (ht btree) &key (transaction *current-transaction*)