Fix undefine init_smoke* C function & cleanup finalizers when a image is saved.
src/object-map.lisp
Thu Jul 2 21:08:40 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Fix undefine init_smoke* C function & cleanup finalizers when a image is saved.
--- old-smoke/src/object-map.lisp 2014-10-30 08:13:47.000000000 +0100
+++ new-smoke/src/object-map.lisp 2014-10-30 08:13:47.000000000 +0100
@@ -38,6 +38,13 @@
except object with a non virtual destructor which had their ownership transferred
to C++.")
+(eval-on-save ()
+ (loop for object being the hash-value of *object-map* do
+ (warn "life object ~A" (class-of object))
+ (remove-finalizer object)
+ (setf (slot-value object 'pointer) (null-pointer)))
+ (clrhash *object-map*))
+
(declaim (inline get-object))
(defun get-object (pointer)
(gethash (pointer-address pointer) *object-map*))