]> granicus.if.org Git - gc/commit
Fix collection of objects referenced only from GC_mark_stack_X variables
authorIvan Maidanski <ivmai@mail.ru>
Fri, 6 Sep 2013 19:36:39 +0000 (23:36 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 6 Sep 2013 19:36:39 +0000 (23:36 +0400)
commita7a566616b8daa81671166d0386c251cc0f43461
tree9e446a222a820a4c07e8b36c58c75073f8b7b5c1
parenta05205d04e13e9fc73482f35d6a925d5aefa2dcf
Fix collection of objects referenced only from GC_mark_stack_X variables

* include/private/gc_pmark.h (mse): Move to gc_priv.h (as used by
GC_mark_stack_limit, GC_mark_stack_top, GC_mark_stack).
* include/private/gc_pmark.h (GC_mark_stack_limit, GC_mark_stack_top,
GC_mark_stack): Remove variable declaration.
* include/private/gc_priv.h (_GC_arrays): Add _mark_stack,
_mark_stack_limit, _mark_stack_top fields.
* include/private/gc_priv.h (GC_mark_stack_limit, GC_mark_stack_top,
GC_mark_stack): Define macro (redirecting to the corresponding field
of GC_arrays).
* mark.c (GC_mark_stack, GC_mark_stack_limit, GC_mark_stack_top):
Remove variable; move comment to gc_priv.h.
* mark.c (GC_push_marked1, GC_push_marked2, GC_push_marked4): Undefine
GC_mark_stack_top and GC_mark_stack_limit macros (before redefining
them to local variables) at function start, redefine them back to the
corresponding field of GC_arrays at function exit.
include/private/gc_pmark.h
include/private/gc_priv.h
mark.c