[sgen] Use size_t for all heap limits.
authorRodrigo Kumpera <kumpera@gmail.com>
Wed, 4 Jun 2014 16:41:32 +0000 (12:41 -0400)
committerRodrigo Kumpera <kumpera@gmail.com>
Wed, 4 Jun 2014 17:34:46 +0000 (13:34 -0400)
mono/metadata/sgen-gc.h
mono/metadata/sgen-marksweep.c
mono/metadata/sgen-memory-governor.c
mono/metadata/sgen-memory-governor.h

index 49b6d08650bc3b4541ad92da613b2016a112afa2..9cd8e9e96b7fbe1d8d7cc427f5578b92063a1293 100644 (file)
@@ -692,7 +692,7 @@ struct _SgenMajorCollector {
        gboolean (*ptr_is_in_non_pinned_space) (char *ptr, char **start);
        gboolean (*obj_is_from_pinned_alloc) (char *obj);
        void (*report_pinned_memory_usage) (void);
-       int (*get_num_major_sections) (void);
+       size_t (*get_num_major_sections) (void);
        gboolean (*handle_gc_param) (const char *opt);
        void (*print_gc_param_usage) (void);
        gboolean (*is_worker_thread) (MonoNativeThreadId thread);
index d036c751822a9f35f8dab2ca9cfd5c1e9095d110..fda177a07d4c2b267a697f2b45b37f8112100692 100755 (executable)
@@ -217,7 +217,7 @@ static size_t num_empty_blocks = 0;
 #define FOREACH_BLOCK(bl)      for ((bl) = all_blocks; (bl); (bl) = (bl)->next) {
 #define END_FOREACH_BLOCK      }
 
-static int num_major_sections = 0;
+static size_t num_major_sections = 0;
 /* one free block list for each block object size */
 static MSBlockInfo **free_block_lists [MS_BLOCK_TYPE_MAX];
 
@@ -833,7 +833,7 @@ static void*
 major_alloc_degraded (MonoVTable *vtable, size_t size)
 {
        void *obj;
-       int old_num_sections;
+       size_t old_num_sections;
 
        old_num_sections = num_major_sections;
 
@@ -1831,7 +1831,7 @@ ms_calculate_block_obj_sizes (double factor, int *arr)
 }
 
 /* only valid during minor collections */
-static int old_num_major_sections;
+static mword old_num_major_sections;
 
 static void
 major_start_nursery_collection (void)
@@ -2107,7 +2107,7 @@ major_get_used_size (void)
        return size;
 }
 
-static int
+static size_t
 get_num_major_sections (void)
 {
        return num_major_sections;
index 2081de4fc736e9221bd63035330c4354e2a27326..448ebef3f05ff0df0ebabe70767c76c197de9a30 100644 (file)
@@ -57,14 +57,14 @@ static gboolean debug_print_allowance = FALSE;
 /* use this to tune when to do a major/minor collection */
 static mword memory_pressure = 0;
 static mword minor_collection_allowance;
-static int minor_collection_sections_alloced = 0;
+static mword minor_collection_sections_alloced = 0;
 
-static int last_major_num_sections = 0;
-static int last_los_memory_usage = 0;
+static mword last_major_num_sections = 0;
+static mword last_los_memory_usage = 0;
 
 static gboolean need_calculate_minor_collection_allowance;
 
-static int last_collection_old_num_major_sections;
+static mword last_collection_old_num_major_sections;
 static mword last_collection_los_memory_usage = 0;
 static mword last_collection_old_los_memory_usage;
 static mword last_collection_los_memory_alloced;
@@ -85,7 +85,7 @@ double_to_mword_with_saturation (double value)
 static void
 sgen_memgov_try_calculate_minor_collection_allowance (gboolean overwrite)
 {
-       int num_major_sections, num_major_sections_saved;
+       size_t num_major_sections, num_major_sections_saved;
        mword los_memory_saved, new_major, new_heap_size, save_target, allowance_target;
 
        if (overwrite)
@@ -210,7 +210,7 @@ static void
 log_timming (GGTimingInfo *info)
 {
        //unsigned long stw_time, unsigned long bridge_time, gboolean is_overflow
-       int num_major_sections = major_collector.get_num_major_sections ();
+       mword num_major_sections = major_collector.get_num_major_sections ();
        char full_timing_buff [1024];
        full_timing_buff [0] = '\0';
 
@@ -248,7 +248,7 @@ sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count)
 }
 
 void
-sgen_register_major_sections_alloced (int num_sections)
+sgen_register_major_sections_alloced (size_t num_sections)
 {
        minor_collection_sections_alloced += num_sections;
 }
@@ -342,7 +342,7 @@ sgen_free_os_memory (void *addr, size_t size, SgenAllocFlags flags)
        g_assert (!(flags & ~SGEN_ALLOC_HEAP));
 
        mono_vfree (addr, size);
-       SGEN_ATOMIC_ADD_P (total_alloc, -size);
+       SGEN_ATOMIC_ADD_P (total_alloc, -(gssize)size);
        if (flags & SGEN_ALLOC_HEAP)
                MONO_GC_HEAP_FREE ((mword)addr, size);
 }
@@ -369,7 +369,7 @@ sgen_memgov_available_free_space (void)
 void
 sgen_memgov_release_space (mword size, int space)
 {
-       SGEN_ATOMIC_ADD_P (allocated_heap, -size);
+       SGEN_ATOMIC_ADD_P (allocated_heap, -(gssize)size);
 }
 
 gboolean
index 497ecb05765c715798ff213d4745f0398c3e19cb..08b1e082f5d7f4f6e643b3f93361924281cedb5d 100644 (file)
@@ -39,7 +39,7 @@ void sgen_memgov_major_collection_end (void) MONO_INTERNAL;
 void sgen_memgov_collection_start (int generation) MONO_INTERNAL;
 void sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count) MONO_INTERNAL;
 
-void sgen_register_major_sections_alloced (int num_sections) MONO_INTERNAL;
+void sgen_register_major_sections_alloced (mword num_sections) MONO_INTERNAL;
 mword sgen_get_minor_collection_allowance (void) MONO_INTERNAL;
 gboolean sgen_need_major_collection (mword space_needed) MONO_INTERNAL;