~ chicken-core (chicken-5) 839d4e518b61ff21b2cbe09fbd40d8c89e9aad0d
commit 839d4e518b61ff21b2cbe09fbd40d8c89e9aad0d
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Apr 16 15:34:34 2014 +0200
Commit: Mario Domenech Goulart <mario.goulart@gmail.com>
CommitDate: Wed Apr 16 11:37:17 2014 -0300
Make sure "ev-tstvec" does not hold on to a released object, because the storage may be re-used during GC.
This would magically turn the released (and probably mangled) data into a heap-object again, should the heap be
resized.
Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Signed-off-by: Mario Domenech Goulart <mario.goulart@gmail.com>
diff --git a/tests/lolevel-tests.scm b/tests/lolevel-tests.scm
index 3a1dc70e..886a07ae 100644
--- a/tests/lolevel-tests.scm
+++ b/tests/lolevel-tests.scm
@@ -217,7 +217,10 @@
(define ev-tstvec (object-evict tstvec))
(assert (not (eq? tstvec ev-tstvec)))
(assert (object-evicted? ev-tstvec))
-(object-release ev-tstvec)
+(set! ev-tstvec
+ (let ((old ev-tstvec))
+ (object-release old)
+ #f))
; object-evict-to-location
Trap