summaryrefslogtreecommitdiff
path: root/mark_rts.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-06-02 19:27:57 +0400
committerIvan Maidanski <ivmai@mail.ru>2012-06-02 19:27:57 +0400
commitdd182892dacc82fcd3ea875211c8ffa154e01261 (patch)
tree2e121e78c1619d5e862b86d4c144f25384d825cb /mark_rts.c
parent10a0853c798a9c8fb001572dcdcf2e45ad7bb1f8 (diff)
downloadbdwgc-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.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/mark_rts.c b/mark_rts.c
index 60f35a5b..8795a5b5 100644
--- a/mark_rts.c
+++ b/mark_rts.c
@@ -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.