diff options
author | Petter Urkedal <paurkedal@gmail.com> | 2012-01-08 17:30:42 +0800 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2012-01-14 00:00:08 +0800 |
commit | d6836651e8424278d3112499ca7dd0bf4c808079 (patch) | |
tree | 556391c45537bdb451e3d8d2932beeb67910dbea /mark.c | |
parent | f73c8b73fd930f5e68db8753ac5e748e52005077 (diff) | |
download | bdwgc-d6836651e8424278d3112499ca7dd0bf4c808079.tar.gz |
Export mark-bit manipulation functions.
* include/private/gc_priv.h, include/gc_mark.h: Move GC_is_marked,
GC_clear_mark_bit and GC_set_mark_bit to a public header and adjust
prototypes and comment.
* mark.c: Adjust prototypes accordingly.
Diffstat (limited to 'mark.c')
-rw-r--r-- | mark.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -190,11 +190,11 @@ static void clear_marks_for_block(struct hblk *h, word dummy GC_ATTR_UNUSED) } /* Slow but general routines for setting/clearing/asking about mark bits */ -GC_INNER void GC_set_mark_bit(ptr_t p) +GC_API void GC_CALL GC_set_mark_bit(void *p) { struct hblk *h = HBLKPTR(p); hdr * hhdr = HDR(h); - word bit_no = MARK_BIT_NO(p - (ptr_t)h, hhdr -> hb_sz); + word bit_no = MARK_BIT_NO((ptr_t)p - (ptr_t)h, hhdr -> hb_sz); if (!mark_bit_from_hdr(hhdr, bit_no)) { set_mark_bit_from_hdr(hhdr, bit_no); @@ -202,11 +202,11 @@ GC_INNER void GC_set_mark_bit(ptr_t p) } } -GC_INNER void GC_clear_mark_bit(ptr_t p) +GC_API void GC_CALL GC_clear_mark_bit(void *p) { struct hblk *h = HBLKPTR(p); hdr * hhdr = HDR(h); - word bit_no = MARK_BIT_NO(p - (ptr_t)h, hhdr -> hb_sz); + word bit_no = MARK_BIT_NO((ptr_t)p - (ptr_t)h, hhdr -> hb_sz); if (mark_bit_from_hdr(hhdr, bit_no)) { size_t n_marks; @@ -224,11 +224,11 @@ GC_INNER void GC_clear_mark_bit(ptr_t p) } } -GC_bool GC_is_marked(ptr_t p) +GC_API int GC_CALL GC_is_marked(void *p) { struct hblk *h = HBLKPTR(p); hdr * hhdr = HDR(h); - word bit_no = MARK_BIT_NO(p - (ptr_t)h, hhdr -> hb_sz); + word bit_no = MARK_BIT_NO((ptr_t)p - (ptr_t)h, hhdr -> hb_sz); return((GC_bool)mark_bit_from_hdr(hhdr, bit_no)); } |