src/share/vm/oops/compiledICHolder.cpp

Print this page
rev 6521 : 8044775: Improve usage of umbrella header atomic.inline.hpp.

*** 25,38 **** --- 25,53 ---- #include "precompiled.hpp" #include "oops/compiledICHolder.hpp" #include "oops/klass.hpp" #include "oops/method.hpp" #include "oops/oop.inline2.hpp" + #include "runtime/atomic.inline.hpp" volatile int CompiledICHolder::_live_count; volatile int CompiledICHolder::_live_not_claimed_count; + #ifdef ASSERT + + CompiledICHolder::CompiledICHolder(Method* method, Klass* klass) + : _holder_method(method), _holder_klass(klass) { + Atomic::inc(&_live_count); + Atomic::inc(&_live_not_claimed_count); + } + + CompiledICHolder::~CompiledICHolder() { + assert(_live_count > 0, "underflow"); + Atomic::dec(&_live_count); + } + + #endif // ASSERT // Printing void CompiledICHolder::print_on(outputStream* st) const { st->print("%s", internal_name());
*** 49,53 **** --- 64,76 ---- void CompiledICHolder::verify_on(outputStream* st) { guarantee(holder_method()->is_method(), "should be method"); guarantee(holder_klass()->is_klass(), "should be klass"); } + + #ifdef ASSERT + + void CompiledICHolder::claim() { + Atomic::dec(&_live_not_claimed_count); + } + + #endif // ASSERT