mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 05:45:11 +02:00
8145192: 'count' variable can overflow in PSMarkSweep::invoke on 64 bit JVM
Changed MarkSweepAlwaysCompactCount from uintx to uint Reviewed-by: tschatzl, tbenson
This commit is contained in:
parent
46d60f379c
commit
094345fc88
3 changed files with 6 additions and 6 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -99,7 +99,7 @@ void PSMarkSweep::invoke(bool maximum_heap_compaction) {
|
||||||
heap->collector_policy()->should_clear_all_soft_refs();
|
heap->collector_policy()->should_clear_all_soft_refs();
|
||||||
|
|
||||||
uint count = maximum_heap_compaction ? 1 : MarkSweepAlwaysCompactCount;
|
uint count = maximum_heap_compaction ? 1 : MarkSweepAlwaysCompactCount;
|
||||||
UIntXFlagSetting flag_setting(MarkSweepAlwaysCompactCount, count);
|
UIntFlagSetting flag_setting(MarkSweepAlwaysCompactCount, count);
|
||||||
PSMarkSweep::invoke_no_policy(clear_all_soft_refs || maximum_heap_compaction);
|
PSMarkSweep::invoke_no_policy(clear_all_soft_refs || maximum_heap_compaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -774,7 +774,7 @@ HeapWord* GenCollectorPolicy::satisfy_failed_allocation(size_t size,
|
||||||
// free memory should be here, especially if they are expensive. If this
|
// free memory should be here, especially if they are expensive. If this
|
||||||
// attempt fails, an OOM exception will be thrown.
|
// attempt fails, an OOM exception will be thrown.
|
||||||
{
|
{
|
||||||
UIntXFlagSetting flag_change(MarkSweepAlwaysCompactCount, 1); // Make sure the heap is fully compacted
|
UIntFlagSetting flag_change(MarkSweepAlwaysCompactCount, 1); // Make sure the heap is fully compacted
|
||||||
|
|
||||||
gch->do_collection(true, // full
|
gch->do_collection(true, // full
|
||||||
true, // clear_all_soft_refs
|
true, // clear_all_soft_refs
|
||||||
|
|
|
@ -3395,10 +3395,10 @@ public:
|
||||||
"also has a smaller default value; see arguments.cpp.") \
|
"also has a smaller default value; see arguments.cpp.") \
|
||||||
range(0, 100) \
|
range(0, 100) \
|
||||||
\
|
\
|
||||||
product(uintx, MarkSweepAlwaysCompactCount, 4, \
|
product(uint, MarkSweepAlwaysCompactCount, 4, \
|
||||||
"How often should we fully compact the heap (ignoring the dead " \
|
"How often should we fully compact the heap (ignoring the dead " \
|
||||||
"space parameters)") \
|
"space parameters)") \
|
||||||
range(1, max_uintx) \
|
range(1, max_juint) \
|
||||||
\
|
\
|
||||||
develop(uintx, GCExpandToAllocateDelayMillis, 0, \
|
develop(uintx, GCExpandToAllocateDelayMillis, 0, \
|
||||||
"Delay between expansion and allocation (in milliseconds)") \
|
"Delay between expansion and allocation (in milliseconds)") \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue