summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-03-24 11:24:27 +0100
committerIvan Maidanski <ivmai@mail.ru>2012-03-25 09:45:40 +0200
commited1819f7b78f5ebfe84f7bc82e33c345b1b773e3 (patch)
tree4577c8a7de371b0296458642a6728514386d9ce0 /include
parentc1d271b8c1ea4dce12ecdf3ff0caece68be0ddf8 (diff)
Fix GC_clear_stack declaration and make it public
(Includes reverting part of commit b2345fb) * include/gc_mark.h (GC_clear_stack): New API function. * include/private/gc_priv.h (GC_clear_stack): Remove declaration. * misc.c (GC_clear_stack): Replace GC_INNER with GC_API; add GC_CALL calling conventions modifier.
Diffstat (limited to 'include')
-rw-r--r--include/gc_mark.h5
-rw-r--r--include/private/gc_priv.h3
2 files changed, 5 insertions, 3 deletions
diff --git a/include/gc_mark.h b/include/gc_mark.h
index 34fedb5..c3c7d2d 100644
--- a/include/gc_mark.h
+++ b/include/gc_mark.h
@@ -207,6 +207,11 @@ GC_API void GC_CALL GC_register_describe_type_fn(int /* kind */,
/* to be used when printing objects */
/* of a particular kind. */
+/* Clear some of the inaccessible part of the stack. Returns its */
+/* argument, so it can be used in a tail call position, hence clearing */
+/* another frame. Argument may be NULL. */
+GC_API void * GC_CALL GC_clear_stack(void *);
+
/* Set and get the client notifier on collections. The client function */
/* is called at the start of every full GC (called with the allocation */
/* lock held). May be 0. This is a really tricky interface to use */
diff --git a/include/private/gc_priv.h b/include/private/gc_priv.h
index b42910e..c49aea4 100644
--- a/include/private/gc_priv.h
+++ b/include/private/gc_priv.h
@@ -1712,9 +1712,6 @@ GC_INNER ptr_t GC_allocobj(size_t sz, int kind);
/* free list nonempty, and return its */
/* head. Sz is in granules. */
-GC_INNER void * GC_clear_stack(void *);
- /* in misc.c, behaves like identity. */
-
#ifdef GC_ADD_CALLER
# define GC_DBG_RA GC_RETURN_ADDR,
#else