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
@ -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.
|
||||
*
|
||||
* 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();
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
*
|
||||
* 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
|
||||
// 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
|
||||
true, // clear_all_soft_refs
|
||||
|
@ -3395,10 +3395,10 @@ public:
|
||||
"also has a smaller default value; see arguments.cpp.") \
|
||||
range(0, 100) \
|
||||
\
|
||||
product(uintx, MarkSweepAlwaysCompactCount, 4, \
|
||||
product(uint, MarkSweepAlwaysCompactCount, 4, \
|
||||
"How often should we fully compact the heap (ignoring the dead " \
|
||||
"space parameters)") \
|
||||
range(1, max_uintx) \
|
||||
range(1, max_juint) \
|
||||
\
|
||||
develop(uintx, GCExpandToAllocateDelayMillis, 0, \
|
||||
"Delay between expansion and allocation (in milliseconds)") \
|
||||
|
Loading…
x
Reference in New Issue
Block a user