Note: these 3 functions are not used by GC itself.
* include/gc_mark.h (GC_is_tmp_root, GC_print_trace,
GC_print_trace_inner): New public API prototype.
* mark.c [TRACE_BUF] (GC_print_trace_inner, GC_print_trace): Define as
public (GC_API+GC_CALL).
* mark_rts.c [MSWIN32 && !NO_DEBUGGING] (GC_is_tmp_root): Likewise.
* mark_rts.c [MSWIN32 && !NO_DEBUGGING] (GC_is_tmp_root): Replace
GC_bool return type with int, replace ptr_t argument type to void*
(because GC_bool and ptr_t are not exported from GC).
GC_reachable_object_proc,
void * /* client_data */) GC_ATTR_NONNULL(1);
+GC_API int GC_CALL GC_is_tmp_root(void *);
+
+GC_API void GC_CALL GC_print_trace(GC_word /* gc_no */);
+GC_API void GC_CALL GC_print_trace_inner(GC_word /* gc_no */);
+
#ifdef __cplusplus
} /* end of extern "C" */
#endif
if (GC_trace_buf_ptr >= TRACE_ENTRIES) GC_trace_buf_ptr = 0;
}
-void GC_print_trace_inner(word gc_no)
+GC_API void GC_CALL GC_print_trace_inner(word gc_no)
{
int i;
GC_printf("Trace incomplete\n");
}
-void GC_print_trace(word gc_no)
+GC_API void GC_CALL GC_print_trace(word gc_no)
{
DCL_LOCK_STATE;
/* Not used at present (except for, may be, debugging purpose). */
/* Workaround for the OS mapping and unmapping behind our back: */
/* Is the address p in one of the temporary static root sections? */
- GC_bool GC_is_tmp_root(ptr_t p)
+ GC_API int GC_CALL GC_is_tmp_root(void *p)
{
static int last_root_set = MAX_ROOT_SETS;
register int i;