doc correction: interior pointers cannot be odd-valued

More precisely odd-valued references do not prevent GC
of an enclosing object that is allocated in "interior" mode.
This commit is contained in:
Matthew Flatt 2013-11-01 22:15:06 -06:00
parent 717521e498
commit e62d9d1ede

View File

@ -56,9 +56,12 @@ The basic collector allocation functions are:
in @secref["im:3m"]).} in @secref["im:3m"]).}
@item{@cppi{scheme_malloc_allow_interior} --- Allocates an array of @item{@cppi{scheme_malloc_allow_interior} --- Allocates an array of
pointers such that the array is never moved by the garbage collector pointers with special treatment by 3m: the array is never moved by
and references are allowed into the middle of the block on 3m (and the garbage collector, references are allowed into the middle of the
pointers to the middle prevent the block from being collected). Use block, and even-valued pointers to the middle of the block prevent
the block from being collected. (Beware that the memory manager
treats any odd-valued pointer as a fixnum, even if it refers to the
middle of a block that allows interior pointers.) Use
this procedure sparingly, because small, non-moving objects are this procedure sparingly, because small, non-moving objects are
handled less efficiently than movable objects by the 3m collector. handled less efficiently than movable objects by the 3m collector.
This procedure is the same as @cppi{scheme_malloc} with the This procedure is the same as @cppi{scheme_malloc} with the