diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2012-06-02 19:27:57 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2012-06-02 19:27:57 +0400 |
commit | dd182892dacc82fcd3ea875211c8ffa154e01261 (patch) | |
tree | 2e121e78c1619d5e862b86d4c144f25384d825cb /mark_rts.c | |
parent | 10a0853c798a9c8fb001572dcdcf2e45ad7bb1f8 (diff) | |
download | bdwgc-dd182892dacc82fcd3ea875211c8ffa154e01261.tar.gz |
Add GC_push_all/conditional() to GC public API
* include/gc_mark.h (GC_push_all, GC_push_conditional): Expose
function as a part of public API (use GC_API and GC_CALL); replace
internal ptr_t and GC_bool type to char* and int, respectively; add
comment.
* mark.c (GC_push_all, GC_push_conditional): Likewise.
* include/private/gc_priv.h (GC_push_all, GC_push_conditional): Remove
function declaration.
* include/private/gc_priv.h (GC_PUSH_CONDITIONAL): New macro used
internally instead of GC_push_conditional (defined depending on
GC_DISABLE_INCREMENTAL).
* include/private/gc_priv.h (GC_PUSH_CONDITIONAL, GC_push_all_stack):
Update comment.
* mark.c (GC_push_conditional): Define for GC_DISABLE_INCREMENTAL case
(rediect to GC_push_all).
* mark_rts.c (GC_push_conditional_with_exclusions): Use
GC_PUSH_CONDITIONAL() instead of GC_push_conditional().
* mark_rts.c (GC_push_roots): Reformat the comment.
Diffstat (limited to 'mark_rts.c')
-rw-r--r-- | mark_rts.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -496,11 +496,11 @@ STATIC void GC_push_conditional_with_exclusions(ptr_t bottom, ptr_t top, while ((word)bottom < (word)top) { next = GC_next_exclusion(bottom); if (0 == next || (word)(excl_start = next -> e_start) >= (word)top) { - GC_push_conditional(bottom, top, all); + GC_PUSH_CONDITIONAL(bottom, top, all); return; } if ((word)excl_start > (word)bottom) - GC_push_conditional(bottom, excl_start, all); + GC_PUSH_CONDITIONAL(bottom, excl_start, all); bottom = next -> e_end; } } @@ -741,8 +741,9 @@ STATIC void GC_push_regs_and_stack(ptr_t cold_gc_frame) } /* - * Call the mark routines (GC_tl_push for a single pointer, GC_push_conditional - * on groups of pointers) on every top level accessible pointer. + * Call the mark routines (GC_tl_push for a single pointer, + * GC_push_conditional on groups of pointers) on every top level + * accessible pointer. * If all is FALSE, arrange to push only possibly altered values. * Cold_gc_frame is an address inside a GC frame that * remains valid until all marking is complete. |