Thu Jun 11 20:45:05 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* futile CLISP fixes
hunk ./src/clos.lisp 454
+ #-clisp
hunk ./src/object-map.lisp 24
- #-cmucl (make-weak-hash-table :weakness weakness)
+ #-cmucl (make-weak-hash-table :weakness #-clisp weakness
+ ;; CLISP crash with weak hash table
+ ;; leak memory (see also: #'keep-wrapper)
+ #+clisp nil)
hunk ./src/object-map.lisp 30
+
+;; FIXME
+;; CLISP has problems with weak hashtables and finalizers.
+;; trivial-garbage has a workaround!?
+;; http://sourceforge.net/tracker/index.php?func=detail&aid=1472478&group_id=1355&atid=101355
+;; crashes 2.47 and 2.44.1
+;; Works when not using a weak hash table, but now we are leaking memory!
hunk ./src/object-map.lisp 44
+(declaim (inline ptr -address))
+(defun ptr-address (pointer)
+ ;; CLISP returns NIL for a null pointer
+ #+clisp
+ (if pointer
+ (pointer-address pointer)
+ 0)
+ #-clisp
+ (pointer-address pointer))
+
hunk ./src/object-map.lisp 56
- (gethash (pointer-address pointer) *object-map*))
+ (gethash (ptr-address pointer) *object-map*))
hunk ./src/object-map.lisp 60
- (setf (gethash (pointer-address pointer) *object-map*)
+ (setf (gethash (ptr-address pointer) *object-map*)
hunk ./src/object-map.lisp 65
- (nth-value 1 (gethash (pointer-address pointer) *object-map*)))
+ (nth-value 1 (gethash (ptr-address pointer) *object-map*)))
hunk ./src/object-map.lisp 68
- (remhash (pointer-address pointer) *object-map*))
+ (remhash (ptr-address pointer) *object-map*))
hunk ./src/object-map.lisp 74
- (remhash (pointer-address pointer) *object-map*))
+ (remhash (ptr-address pointer) *object-map*))