Mercurial > hg > icedtea8-forest > hotspot
changeset 10853:3b255f489efa
8255269: Unsigned overflow in g1Policy.cpp
Reviewed-by: yan
Contributed-by: William Kemper <kemperw@amazon.com>
author | phh |
---|---|
date | Tue, 27 Oct 2020 15:13:45 +0000 |
parents | 53a1332a8d25 |
children | 57a0726f3c0a |
files | src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Mon Oct 19 19:21:46 2020 +0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Tue Oct 27 15:13:45 2020 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2020, 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 @@ -1130,11 +1130,11 @@ _rs_length_diff_seq->add((double) rs_length_diff); size_t freed_bytes = _heap_used_bytes_before_gc - cur_used_bytes; - size_t copied_bytes = _collection_set_bytes_used_before - freed_bytes; - double cost_per_byte_ms = 0.0; - if (copied_bytes > 0) { - cost_per_byte_ms = phase_times()->average_time_ms(G1GCPhaseTimes::ObjCopy) / (double) copied_bytes; + if (_collection_set_bytes_used_before > freed_bytes) { + size_t copied_bytes = _collection_set_bytes_used_before - freed_bytes; + double average_copy_time = phase_times()->average_time_ms(G1GCPhaseTimes::ObjCopy); + double cost_per_byte_ms = average_copy_time / (double) copied_bytes; if (_in_marking_window) { _cost_per_byte_ms_during_cm_seq->add(cost_per_byte_ms); } else {