#endif /* !GC_DISABLE_INCREMENTAL */
#ifdef MANUAL_VDB
- GC_INNER void GC_dirty_async_inner(const void *p);
-# define GC_dirty_async(p) \
- (GC_incremental ? GC_dirty_async_inner(p) : (void)0)
+ GC_INNER void GC_dirty_inner(const void *p); /* does not require locking */
+# define GC_dirty(p) (GC_incremental ? GC_dirty_inner(p) : (void)0)
#else
-# define GC_dirty_async(p) (void)(p)
+# define GC_dirty(p) (void)(p)
#endif
/* Same as GC_base but excepts and returns a pointer to const object. */
GC_API void GC_CALL GC_end_stubborn_change(const void *p)
{
- GC_dirty_async(p); /* entire object */
+ GC_dirty(p); /* entire object */
}
# ifdef THREADS
/* Pointer is on the stack. We may have dirtied the object */
/* it points to, but have not called GC_dirty yet. */
- GC_dirty_async(p); /* entire object */
+ GC_dirty(p); /* entire object */
# endif
PUSH_CONTENTS_HDR(r, GC_mark_stack_top, GC_mark_stack_limit,
source, hhdr, FALSE);
/* Mark the page containing p as dirty. Logically, this dirties the */
/* entire object. */
- GC_INNER void GC_dirty_async_inner(const void *p)
+ GC_INNER void GC_dirty_inner(const void *p)
{
word index = PHT_HASH(p);
async_set_pht_entry_from_index(GC_dirty_pages, index);