< prev index next >

src/hotspot/share/oops/oopsHierarchy.hpp

optimized_oop

*** 101,156 **** void unregister_oop(); #endif // friend class markOop; public: ! void set_obj(const void* p) { ! raw_set_obj(p); ! CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) register_oop();) ! } ! void raw_set_obj(const void* p) { _o = (oopDesc*)p; } ! ! oop() { set_obj(NULL); } ! oop(const oop& o) { set_obj(o.obj()); } ! oop(const volatile oop& o) { set_obj(o.obj()); } ! oop(const void* p) { set_obj(p); } ! ~oop() { CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) unregister_oop();) } ! oopDesc* obj() const volatile { return _o; } // General access ! oopDesc* operator->() const { return obj(); } ! bool operator==(const oop o) const { return obj() == o.obj(); } ! bool operator==(void *p) const { return obj() == p; } ! bool operator!=(const volatile oop o) const { return obj() != o.obj(); } ! bool operator!=(void *p) const { return obj() != p; } // Assignment ! oop& operator=(const oop& o) { _o = o.obj(); return *this; } ! volatile oop& operator=(const oop& o) volatile { _o = o.obj(); return *this; } ! volatile oop& operator=(const volatile oop& o) volatile { _o = o.obj(); return *this; } // Explict user conversions ! operator void* () const { return (void *)obj(); } ! #ifndef SOLARIS ! operator void* () const volatile { return (void *)obj(); } ! #endif ! operator HeapWord* () const { return (HeapWord*)obj(); } ! operator oopDesc* () const volatile { return obj(); } ! operator intptr_t* () const { return (intptr_t*)obj(); } ! operator PromotedObject* () const { return (PromotedObject*)obj(); } ! operator markOop () const volatile { return markOop(obj()); } ! operator address () const { return (address)obj(); } // from javaCalls.cpp ! operator jobject () const { return (jobject)obj(); } // from parNewGeneration and other things that want to get to the end of // an oop for stuff (like ObjArrayKlass.cpp) ! operator oop* () const { return (oop *)obj(); } }; template<> struct PrimitiveConversions::Translate<oop> : public TrueType { typedef oop Value; --- 101,147 ---- void unregister_oop(); #endif // friend class markOop; public: ! oop() : _o(NULL) { CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) register_oop();) } ! oop(const oop& o) : _o(o._o) { CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) register_oop();) } ! oop(const volatile oop& o) : _o(o._o) { CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) register_oop();) } ! oop(const void* p) : _o((oopDesc*)p) { CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) register_oop();) } ! ~oop() { CHECK_UNHANDLED_OOPS_ONLY(if (CheckUnhandledOops) unregister_oop();) } ! oopDesc* obj() const { return _o; } // General access ! oopDesc* operator->() const { return _o; } ! bool operator==(const oop o) const { return _o == o._o; } ! bool operator==(void *p) const { return _o == p; } ! bool operator!=(const oop o) const { return _o != o._o; } ! bool operator!=(void *p) const { return _o != p; } // Assignment ! oop& operator=(const oop& o) { _o = o._o; return *this; } ! volatile oop& operator=(const oop& o) volatile { _o = o._o; return *this; } ! volatile oop& operator=(const volatile oop& o) volatile { _o = o._o; return *this; } // Explict user conversions ! operator void* () const { return (void *)_o; } ! operator HeapWord* () const { return (HeapWord*)_o; } ! operator oopDesc* () const { return _o; } ! operator intptr_t* () const { return (intptr_t*)_o; } ! operator PromotedObject* () const { return (PromotedObject*)_o; } ! operator markOop () const { return markOop(_o); } ! operator address () const { return (address)_o; } // from javaCalls.cpp ! operator jobject () const { return (jobject)_o; } // from parNewGeneration and other things that want to get to the end of // an oop for stuff (like ObjArrayKlass.cpp) ! operator oop* () const { return (oop *)_o; } }; template<> struct PrimitiveConversions::Translate<oop> : public TrueType { typedef oop Value;
< prev index next >