< prev index next >

src/hotspot/share/oops/oopsHierarchy.hpp

optimized_oop
   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()                              {
+  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 volatile      { return _o; }
+  oopDesc* obj() const                { 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; }
+  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.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; }
+  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 *)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(); }
+  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)obj(); }
+  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 *)obj(); }
+  operator oop* () const              { return (oop *)_o; }
 };
 
 template<>
 struct PrimitiveConversions::Translate<oop> : public TrueType {
   typedef oop Value;
    
< prev index next >