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,10 +24,11 @@
#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,24 +49,12 @@
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
- }
+ 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,13 +78,9 @@
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
- }
+ void claim() NOT_DEBUG_RETURN;
};
#endif // SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP