2009-09-16 Ivan Maidanski <ivmai@mail.ru>
authorivmai <ivmai>
Wed, 16 Sep 2009 09:03:54 +0000 (09:03 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:46 +0000 (21:06 +0400)
(ivmai134.diff)

* alloc.c (GC_expand_hp): Replace GC_init_inner() call with
GC_init() one.
* malloc.c (GC_alloc_large, GC_generic_malloc_inner): Ditto.
* mallocx.c (GC_generic_malloc_many): Ditto.
* misc.c (GC_enable_incremental): Ditto.
* alloc.c (GC_expand_hp): Update the comment.
* mark.c (GC_obj_kinds): Ditto.
* win32_threads.c (GC_allow_register_threads): Ditto.
* private/gc_priv.h (GC_init_inner): Remove function declaration.
* misc.c (GC_init_inner): Replace with public GC_init().

ChangeLog
alloc.c
include/private/gc_priv.h
malloc.c
mallocx.c
mark.c
misc.c
win32_threads.c

index d2d9d89..1cbd312 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,18 @@
 2009-09-16  Ivan Maidanski <ivmai@mail.ru>
+       (ivmai134.diff)
+
+       * alloc.c (GC_expand_hp): Replace GC_init_inner() call with
+       GC_init() one.
+       * malloc.c (GC_alloc_large, GC_generic_malloc_inner): Ditto.
+       * mallocx.c (GC_generic_malloc_many): Ditto.
+       * misc.c (GC_enable_incremental): Ditto.
+       * alloc.c (GC_expand_hp): Update the comment.
+       * mark.c (GC_obj_kinds): Ditto.
+       * win32_threads.c (GC_allow_register_threads): Ditto.
+       * private/gc_priv.h (GC_init_inner): Remove function declaration.
+       * misc.c (GC_init_inner): Replace with public GC_init().
+
+2009-09-16  Ivan Maidanski <ivmai@mail.ru>
        (ivmai126.diff)
 
        * gcj_mlc.c (GC_gcj_fake_mark_proc): New static function.
diff --git a/alloc.c b/alloc.c
index b0ff8f3..00f2ce0 100644 (file)
--- a/alloc.c
+++ b/alloc.c
@@ -1059,14 +1059,14 @@ GC_bool GC_expand_hp_inner(word n)
 }
 
 /* Really returns a bool, but it's externally visible, so that's clumsy. */
-/* Arguments is in bytes.                                              */
+/* Arguments is in bytes.  Includes GC_init() call.                     */
 GC_API int GC_CALL GC_expand_hp(size_t bytes)
 {
     int result;
     DCL_LOCK_STATE;
     
     LOCK();
-    if (!GC_is_initialized) GC_init_inner();
+    if (!GC_is_initialized) GC_init();
     result = (int)GC_expand_hp_inner(divHBLKSZ((word)bytes));
     if (result) GC_requested_heapsize += bytes;
     UNLOCK();
index e46ce40..16e29fa 100644 (file)
@@ -1620,7 +1620,6 @@ void GC_freehblk(struct hblk * p);
                                /* as invalid.                          */
                                
 /*  Misc GC: */
-void GC_init_inner(void);
 GC_bool GC_expand_hp_inner(word n);
 void GC_start_reclaim(int abort_if_found);
                                /* Restore unmarked objects to free     */
index 07c4b59..dff23e1 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -50,7 +50,7 @@ ptr_t GC_alloc_large(size_t lb, int k, unsigned flags)
     /* Round up to a multiple of a granule. */
       lb = (lb + GRANULE_BYTES - 1) & ~(GRANULE_BYTES - 1);
     n_blocks = OBJ_SZ_TO_BLOCKS(lb);
-    if (!GC_is_initialized) GC_init_inner();
+    if (!GC_is_initialized) GC_init();
     /* Do our share of marking work */
         if(GC_incremental && !GC_dont_gc)
            GC_collect_a_little_inner((int)n_blocks);
@@ -112,7 +112,7 @@ void * GC_generic_malloc_inner(size_t lb, int k)
 
         if( (op = *opp) == 0 ) {
            if (GC_size_map[lb] == 0) {
-             if (!GC_is_initialized)  GC_init_inner();
+             if (!GC_is_initialized) GC_init();
              if (GC_size_map[lb] == 0) GC_extend_size_map(lb);
              return(GC_generic_malloc_inner(lb, k));
            }
index 03f650d..e379dcf 100644 (file)
--- a/mallocx.c
+++ b/mallocx.c
@@ -288,7 +288,7 @@ DCL_LOCK_STATE;
     if (GC_have_errors) GC_print_all_errors();
     GC_INVOKE_FINALIZERS();
     LOCK();
-    if (!GC_is_initialized) GC_init_inner();
+    if (!GC_is_initialized) GC_init();
     /* Do our share of marking work */
       if (GC_incremental && !GC_dont_gc) {
         ENTER_GC();
diff --git a/mark.c b/mark.c
index 36b9134..1736059 100644 (file)
--- a/mark.c
+++ b/mark.c
@@ -56,7 +56,7 @@ struct obj_kind GC_obj_kinds[MAXOBJKINDS] = {
 /* PTRFREE */ { &GC_aobjfreelist[0], 0 /* filled in dynamically */,
                0 | GC_DS_LENGTH, FALSE, FALSE },
 /* NORMAL  */ { &GC_objfreelist[0], 0,
-               0 | GC_DS_LENGTH,  /* Adjusted in GC_init_inner for EXTRA_BYTES */
+               0 | GC_DS_LENGTH,  /* Adjusted in GC_init for EXTRA_BYTES */
                TRUE /* add length to descr */, TRUE },
 /* UNCOLLECTABLE */
              { &GC_uobjfreelist[0], 0,
diff --git a/misc.c b/misc.c
index 8ab11ec..0949cc2 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -452,14 +452,6 @@ GC_bool GC_is_initialized = FALSE;
   extern void GC_init_parallel(void);
 # endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
 
-/* FIXME: The GC_init/GC_init_inner distinction should go away. */
-GC_API void GC_CALL GC_init(void)
-{
-    /* LOCK(); -- no longer does anything this early. */
-    GC_init_inner();
-    /* UNLOCK(); */
-}
-
 #if (defined(MSWIN32) || defined(MSWINCE)) && defined(THREADS)
     CRITICAL_SECTION GC_write_cs;
 #endif
@@ -515,8 +507,9 @@ static void maybe_install_looping_handler(void)
   extern int GC_unmap_threshold;
 #endif
 
-void GC_init_inner(void)
+GC_API void GC_CALL GC_init(void)
 {
+    /* LOCK(); -- no longer does anything this early. */
 #   if !defined(THREADS) && defined(GC_ASSERTIONS)
         word dummy;
 #   endif
@@ -874,7 +867,7 @@ GC_API void GC_CALL GC_enable_incremental(void)
     maybe_install_looping_handler();  /* Before write fault handler! */
     GC_incremental = TRUE;
     if (!GC_is_initialized) {
-        GC_init_inner();
+        GC_init();
     } else {
        GC_dirty_init();
     }
index ce121ee..1a33404 100644 (file)
@@ -663,7 +663,7 @@ GC_API void GC_CALL GC_allow_register_threads(void)
   GC_ASSERT(GC_lookup_thread_inner(GetCurrentThreadId()) != 0);
 
 # if !defined(GC_NO_DLLMAIN) && !defined(PARALLEL_MARK)
-    /* GC_init_parallel() is not called from GC_init_inner().  */
+    /* GC_init() doesn't call GC_init_parallel() in this case. */
     parallel_initialized = TRUE;
 # endif
   GC_need_to_lock = TRUE; /* We are multi-threaded now. */