src/share/vm/oops/compiledICHolder.hpp

Print this page
rev 6676 : 8044775: Improve usage of umbrella header atomic.inline.hpp.
Reviewed-by: stefank, kvn

*** 24,33 **** --- 24,34 ---- #ifndef SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP #define SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP #include "oops/oop.hpp" + #include "utilities/macros.hpp" // A CompiledICHolder* is a helper object for the inline cache implementation. // It holds an intermediate value (method+klass pair) used when converting from // compiled to an interpreted call. //
*** 48,71 **** Klass* _holder_klass; // to avoid name conflict with oopDesc::_klass CompiledICHolder* _next; public: // Constructor ! CompiledICHolder(Method* method, Klass* klass) ! : _holder_method(method), _holder_klass(klass) { ! #ifdef ASSERT ! Atomic::inc(&_live_count); ! Atomic::inc(&_live_not_claimed_count); ! #endif ! } ! ! ~CompiledICHolder() { ! #ifdef ASSERT ! assert(_live_count > 0, "underflow"); ! Atomic::dec(&_live_count); ! #endif ! } static int live_count() { return _live_count; } static int live_not_claimed_count() { return _live_not_claimed_count; } // accessors --- 49,60 ---- Klass* _holder_klass; // to avoid name conflict with oopDesc::_klass CompiledICHolder* _next; public: // Constructor ! CompiledICHolder(Method* method, Klass* klass); ! ~CompiledICHolder() NOT_DEBUG_RETURN; static int live_count() { return _live_count; } static int live_not_claimed_count() { return _live_not_claimed_count; } // accessors
*** 89,101 **** void print_on(outputStream* st) const; void print_value_on(outputStream* st) const; const char* internal_name() const { return "{compiledICHolder}"; } ! void claim() { ! #ifdef ASSERT ! Atomic::dec(&_live_not_claimed_count); ! #endif ! } }; #endif // SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP --- 78,86 ---- void print_on(outputStream* st) const; void print_value_on(outputStream* st) const; const char* internal_name() const { return "{compiledICHolder}"; } ! void claim() NOT_DEBUG_RETURN; }; #endif // SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP