summaryrefslogtreecommitdiff
path: root/blacklst.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2011-07-26 13:36:22 +0200
committerIvan Maidanski <ivmai@mail.ru>2011-07-26 13:36:22 +0200
commit29be14a4aa2f73bf89396e50e5f5322fa9264b00 (patch)
tree85fb9a7aa0e14ef35f73be40b00e0aedcb37cf96 /blacklst.c
parente955362cfcef47fdc3ad2140f50ea4638fd86a4d (diff)
gc5.3 tarball importgc5_3
Diffstat (limited to 'blacklst.c')
-rw-r--r--blacklst.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/blacklst.c b/blacklst.c
index 0d623c0..e5a3a26 100644
--- a/blacklst.c
+++ b/blacklst.c
@@ -145,6 +145,13 @@ void GC_promote_black_lists()
if (GC_black_list_spacing < 3 * HBLKSIZE) {
GC_black_list_spacing = 3 * HBLKSIZE;
}
+ if (GC_black_list_spacing > MAXHINCR * HBLKSIZE) {
+ GC_black_list_spacing = MAXHINCR * HBLKSIZE;
+ /* Makes it easier to allocate really huge blocks, which otherwise */
+ /* may have problems with nonuniform blacklist distributions. */
+ /* This way we should always succeed immediately after growing the */
+ /* heap. */
+ }
}
void GC_unpromote_black_lists()