8382920: Shenandoah: Do fewer implicit narrowing conversions

Reviewed-by: wkemper, ruili
This commit is contained in:
Leo Korinth 2026-05-04 07:18:48 +00:00
parent 05882095a8
commit 6b8ad8bcc0
4 changed files with 10 additions and 9 deletions

View File

@ -88,10 +88,10 @@ public:
_local_card_stats[MAX_CLEAN_RUN].add(percent_of(_max_clean_run, _cards_in_cluster));
// Update global stats for dirty obj scan counts
_local_card_stats[DIRTY_SCAN_OBJS].add(_dirty_scan_obj_cnt);
_local_card_stats[DIRTY_SCAN_OBJS].add(static_cast<double>(_dirty_scan_obj_cnt));
// Update global stats for alternation counts
_local_card_stats[ALTERNATIONS].add(_alternation_cnt);
_local_card_stats[ALTERNATIONS].add(static_cast<double>(_alternation_cnt));
}
}

View File

@ -446,7 +446,7 @@ inline bool ShenandoahHeap::in_collection_set_loc(void* p) const {
}
inline char ShenandoahHeap::gc_state() const {
return _gc_state.raw_value();
return integer_cast<char>(_gc_state.raw_value());
}
inline bool ShenandoahHeap::is_gc_state(GCState state) const {

View File

@ -27,6 +27,7 @@
#include "cppstdlib/cstddef.hpp"
#include "gc/shenandoah/shenandoahAsserts.hpp"
#include "utilities/integerCast.hpp"
// TODO: Merge the enhanced capabilities of ShenandoahSimpleBitMap into src/hotspot/share/utilities/bitMap.hpp
// and deprecate ShenandoahSimpleBitMap. The key enhanced capabilities to be integrated include:
@ -110,7 +111,7 @@ public:
assert((idx >= 0) && (idx < _num_bits), "precondition");
size_t array_idx = idx >> LogBitsPerWord;
uintx bit_number = idx & (BitsPerWord - 1);
uintx the_bit = nth_bit(bit_number);
uintx the_bit = nth_bit(integer_cast<int>(bit_number));
_bitmap[array_idx] |= the_bit;
}
@ -118,7 +119,7 @@ public:
assert((idx >= 0) && (idx < _num_bits), "precondition");
size_t array_idx = idx >> LogBitsPerWord;
uintx bit_number = idx & (BitsPerWord - 1);
uintx the_bit = nth_bit(bit_number);
uintx the_bit = nth_bit(integer_cast<int>(bit_number));
_bitmap[array_idx] &= ~the_bit;
}
@ -126,7 +127,7 @@ public:
assert((idx >= 0) && (idx < _num_bits), "precondition");
size_t array_idx = idx >> LogBitsPerWord;
uintx bit_number = idx & (BitsPerWord - 1);
uintx the_bit = nth_bit(bit_number);
uintx the_bit = nth_bit(integer_cast<int>(bit_number));
return (_bitmap[array_idx] & the_bit) != 0;
}

View File

@ -158,8 +158,8 @@ private:
static const uintptr_t weak_extract_mask = 1 << 1;
static const uintptr_t chunk_pow_extract_mask = ~right_n_bits(oop_bits);
static const int chunk_range_mask = right_n_bits(chunk_bits);
static const int pow_range_mask = right_n_bits(pow_bits);
static const int chunk_range_mask = right_n_bits<int>(chunk_bits);
static const int pow_range_mask = right_n_bits<int>(pow_bits);
inline oop decode_oop(uintptr_t val) const {
STATIC_ASSERT(oop_shift == 0);
@ -249,7 +249,7 @@ public:
}
static int chunk_size() {
return nth_bit(chunk_bits);
return nth_bit<int>(chunk_bits);
}
};
#else