]> granicus.if.org Git - gc/commitdiff
Fix GC_clear_stack declaration and make it public
authorIvan Maidanski <ivmai@mail.ru>
Sat, 24 Mar 2012 10:24:27 +0000 (14:24 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Sun, 25 Mar 2012 07:43:07 +0000 (11:43 +0400)
(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.

include/gc_mark.h
include/private/gc_priv.h
misc.c

index d740e8971ac642f4da91af8e99a9d181dbc79ab0..57bfc6537c3e22e52900c8998220a8c5d7005c96 100644 (file)
@@ -213,6 +213,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     */
index bff14622627a330e2057ed8222a7c2e14e53509a..4acf1fd73d5e1f0c492cebfac297175bc9007f2e 100644 (file)
@@ -1791,9 +1791,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
diff --git a/misc.c b/misc.c
index c5e64eeca61d158f5303276446818c5a1ad34105..4ad474f5dd2e8457d4d490b51f9ca0da9745ca9d 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -292,7 +292,7 @@ GC_INNER void GC_extend_size_map(size_t i)
 /* 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.                                                       */
-GC_INNER void * GC_clear_stack(void *arg)
+GC_API void * GC_CALL GC_clear_stack(void *arg)
 {
     ptr_t sp = GC_approx_sp();  /* Hotter than actual sp */
 #   ifdef THREADS