summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-06-02 10:33:03 +0200
committerIvan Maidanski <ivmai@mail.ru>2012-06-02 10:33:03 +0200
commit4be945a80fe79d6357e2a5525aa6aea4d8a514c1 (patch)
tree67e8dfad6bfd0e68709ab943e0e3255eebd45d80 /include
parent5563e13d2b1b5c063bdabe720303d8068a07dcae (diff)
Fix visibility of GC_push_all/conditional, GC_push_other_roots symbols
* include/private/gc_priv.h (GC_push_all, GC_push_other_roots): Declare as GC_API_PRIV (instead of GC_INNER) to make the symbol externally visible to some well-known 3rd-party software (e.g., ECL). * include/private/gc_priv.h (GC_push_conditional): Declare as GC_API_PRIV (only if GC_DISABLE_INCREMENTAL is undefined). * mark.c (GC_push_all, GC_push_conditional): Remove GC_INNER (to match the declaration). * os_dep.c (GC_push_other_roots): Likewise.
Diffstat (limited to 'include')
-rw-r--r--include/private/gc_priv.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/include/private/gc_priv.h b/include/private/gc_priv.h
index 5afa916..9d728a9 100644
--- a/include/private/gc_priv.h
+++ b/include/private/gc_priv.h
@@ -1428,11 +1428,11 @@ GC_INNER void GC_initiate_gc(void);
GC_INNER GC_bool GC_collection_in_progress(void);
/* Collection is in progress, or was abandoned. */
-GC_INNER void GC_push_all(ptr_t bottom, ptr_t top);
+GC_API_PRIV void GC_push_all(ptr_t bottom, ptr_t top);
/* Push everything in a range */
/* onto mark stack. */
#ifndef GC_DISABLE_INCREMENTAL
- GC_INNER void GC_push_conditional(ptr_t b, ptr_t t, GC_bool all);
+ GC_API_PRIV void GC_push_conditional(ptr_t b, ptr_t t, GC_bool all);
#else
# define GC_push_conditional(b, t, all) GC_push_all(b, t)
#endif
@@ -1456,13 +1456,15 @@ GC_INNER void GC_push_all_eager(ptr_t b, ptr_t t);
GC_INNER void GC_push_roots(GC_bool all, ptr_t cold_gc_frame);
/* Push all or dirty roots. */
-GC_EXTERN void (*GC_push_other_roots)(void);
+GC_API_PRIV void (*GC_push_other_roots)(void);
/* Push system or application specific roots */
/* onto the mark stack. In some environments */
/* (e.g. threads environments) this is */
/* predefined to be non-zero. A client */
/* supplied replacement should also call the */
- /* original function. */
+ /* original function. Remains externally */
+ /* visible as used by some well-known 3rd-party */
+ /* software (e.g., ECL) currently. */
GC_INNER void GC_push_finalizer_structures(void);
#ifdef THREADS