< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahNumberSeq.cpp

Print this page

        

*** 130,140 **** BinaryMagnitudeSeq::~BinaryMagnitudeSeq() { FREE_C_HEAP_ARRAY(size_t, _mags); } void BinaryMagnitudeSeq::add(size_t val) { ! Atomic::add(val, &_sum); int mag = log2_intptr(val) + 1; // Defensively saturate for product bits: if (mag < 0) { --- 130,140 ---- BinaryMagnitudeSeq::~BinaryMagnitudeSeq() { FREE_C_HEAP_ARRAY(size_t, _mags); } void BinaryMagnitudeSeq::add(size_t val) { ! Atomic::add(&_sum, val); int mag = log2_intptr(val) + 1; // Defensively saturate for product bits: if (mag < 0) {
*** 145,155 **** if (mag >= BitsPerSize_t) { assert (false, "bucket index (%d) overflow for value (" SIZE_FORMAT ")", mag, val); mag = BitsPerSize_t - 1; } ! Atomic::add((size_t)1, &_mags[mag]); } size_t BinaryMagnitudeSeq::level(int level) const { if (0 <= level && level < BitsPerSize_t) { return _mags[level]; --- 145,155 ---- if (mag >= BitsPerSize_t) { assert (false, "bucket index (%d) overflow for value (" SIZE_FORMAT ")", mag, val); mag = BitsPerSize_t - 1; } ! Atomic::add(&_mags[mag], (size_t)1); } size_t BinaryMagnitudeSeq::level(int level) const { if (0 <= level && level < BitsPerSize_t) { return _mags[level];
< prev index next >