;; License along with this library; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-;; $Id: glib.lisp,v 1.3 2000-08-22 23:13:39 espen Exp $
+;; $Id: glib.lisp,v 1.5 2000-08-23 21:36:44 espen Exp $
(in-package "GLIB")
(or
(assoc-ref object (gethash hash-code *quark-from-object*) :test test)
(let ((quark (%quark-get-reserved)))
- (push (cons object quark) (gethash hash-code *quark-from-object*))
+ (setf
+ (gethash hash-code *quark-from-object*)
+ (append
+ (gethash hash-code *quark-from-object*)
+ (list (cons object quark))))
(setf (gethash quark *quark-to-object*) object)
quark))))
(deftype-method
translate-from-alien
- double-list (type-spec glist &optional (alloc :dynamic))
+ double-list (type-spec glist &optional (alloc :reference))
(let ((element-type-spec (second (type-expand-to 'double-list type-spec))))
`(let ((glist ,glist)
(list nil))
,(translate-from-alien
element-type-spec `(glist-data tmp ,element-type-spec) alloc)
list))
- ,(when (eq alloc :dynamic)
+ ,(when (eq alloc :reference)
'(glist-free glist))
(nreverse list))))