version 1.11, 2015/08/04 06:46:29 |
version 1.12, 2015/08/25 07:46:41 |
|
|
diff -urN gc-7.4.2.orig/alloc.c gc-7.4.2/alloc.c |
diff -urN gc-7.4.2.orig/alloc.c gc-7.4.2/alloc.c |
--- gc-7.4.2.orig/alloc.c 2014-06-03 15:08:01.000000000 +0900 |
--- gc-7.4.2.orig/alloc.c 2014-06-03 15:08:01.000000000 +0900 |
+++ gc-7.4.2/alloc.c 2015-08-04 14:17:41.000000000 +0900 |
+++ gc-7.4.2/alloc.c 2015-08-25 16:00:00.000000000 +0900 |
@@ -121,6 +121,7 @@ |
@@ -121,6 +121,7 @@ |
#endif |
#endif |
|
|
Line 9 diff -urN gc-7.4.2.orig/alloc.c gc-7.4.2/alloc.c |
|
Line 9 diff -urN gc-7.4.2.orig/alloc.c gc-7.4.2/alloc.c |
|
|
|
GC_INNER int GC_CALLBACK GC_never_stop_func(void) |
GC_INNER int GC_CALLBACK GC_never_stop_func(void) |
{ |
{ |
@@ -228,7 +229,7 @@ |
@@ -227,8 +228,8 @@ |
|
total_root_size = 2 * stack_size + GC_root_size; |
scan_size = 2 * GC_composite_in_use + GC_atomic_in_use / 4 |
scan_size = 2 * GC_composite_in_use + GC_atomic_in_use / 4 |
+ total_root_size; |
+ total_root_size; |
result = scan_size / GC_free_space_divisor; |
- result = scan_size / GC_free_space_divisor; |
- if (GC_incremental) { |
- if (GC_incremental) { |
|
+ result = scan_size * GC_free_space_numerator / GC_free_space_divisor; |
+ if (1 || GC_incremental) { |
+ if (1 || GC_incremental) { |
result /= 2; |
result /= 2; |
} |
} |
Line 68 diff -urN gc-7.4.2.orig/alloc.c gc-7.4.2/alloc.c |
|
Line 70 diff -urN gc-7.4.2.orig/alloc.c gc-7.4.2/alloc.c |
|
return(TRUE); |
return(TRUE); |
} |
} |
|
|
|
@@ -1276,7 +1285,7 @@ |
|
} |
|
} |
|
|
|
- blocks_to_get = GC_heapsize/(HBLKSIZE*GC_free_space_divisor) |
|
+ blocks_to_get = GC_heapsize * GC_free_space_numerator /(HBLKSIZE*GC_free_space_divisor) |
|
+ needed_blocks; |
|
if (blocks_to_get > MAXHINCR) { |
|
word slop; |
@@ -1334,6 +1343,21 @@ |
@@ -1334,6 +1343,21 @@ |
GC_bool retry = FALSE; |
GC_bool retry = FALSE; |
|
|