< prev index next >

src/share/vm/oops/oopsHierarchy.hpp

Print this page
rev 10700 : [backport] Trim down oop-equals verification
rev 10778 : [backport] Rename VerifyObjectEquals to ShenandoahVerifyObjectEquals


  87   void set_obj(const void* p)         {
  88     raw_set_obj(p);
  89     if (CheckUnhandledOops) register_oop();
  90   }
  91   void raw_set_obj(const void* p)     { _o = (oopDesc*)p; }
  92 
  93   oop()                               { set_obj(NULL); }
  94   oop(const oop& o)                   { set_obj(o.obj()); }
  95   oop(const volatile oop& o)          { set_obj(o.obj()); }
  96   oop(const void* p)                  { set_obj(p); }
  97   ~oop()                              {
  98     if (CheckUnhandledOops) unregister_oop();
  99   }
 100 
 101   oopDesc* obj()  const volatile      { return _o; }
 102 
 103   // General access
 104   oopDesc*  operator->() const        { return obj(); }
 105   bool operator==(const oop o) const  {
 106 #if INCLUDE_ALL_GCS
 107     if (VerifyStrictOopOperations) {
 108       ShouldNotReachHere();
 109     }
 110 #endif
 111     return obj() == o.obj();
 112   }
 113   bool operator==(void *p) const      {
 114 #if INCLUDE_ALL_GCS
 115     if (p != NULL && VerifyStrictOopOperations) {
 116       ShouldNotReachHere();
 117     }
 118 #endif
 119     return obj() == p;
 120   }
 121   bool operator!=(const volatile oop o) const  {
 122 #if INCLUDE_ALL_GCS
 123     if (VerifyStrictOopOperations) {
 124       ShouldNotReachHere();
 125     }
 126 #endif
 127     return obj() != o.obj();
 128   }
 129   bool operator!=(void *p) const      {
 130 #if INCLUDE_ALL_GCS
 131     if (p != NULL && VerifyStrictOopOperations) {
 132       ShouldNotReachHere();
 133     }
 134 #endif
 135     return obj() != p;
 136   }
 137 
 138   bool operator<(oop o) const         { return obj() < o.obj(); }
 139   bool operator>(oop o) const         { return obj() > o.obj(); }
 140   bool operator<=(oop o) const        { return obj() <= o.obj(); }
 141   bool operator>=(oop o) const        { return obj() >= o.obj(); }
 142   bool operator!() const              { return !obj(); }
 143 
 144   // Assignment
 145   oop& operator=(const oop& o)                            { _o = o.obj(); return *this; }
 146 #ifndef SOLARIS
 147   volatile oop& operator=(const oop& o) volatile          { _o = o.obj(); return *this; }
 148 #endif
 149   volatile oop& operator=(const volatile oop& o) volatile { _o = o.obj(); return *this; }
 150 
 151   // Explict user conversions
 152   operator void* () const             { return (void *)obj(); }
 153 #ifndef SOLARIS
 154   operator void* () const volatile    { return (void *)obj(); }
 155 #endif
 156   operator HeapWord* () const         { return (HeapWord*)obj(); }




  87   void set_obj(const void* p)         {
  88     raw_set_obj(p);
  89     if (CheckUnhandledOops) register_oop();
  90   }
  91   void raw_set_obj(const void* p)     { _o = (oopDesc*)p; }
  92 
  93   oop()                               { set_obj(NULL); }
  94   oop(const oop& o)                   { set_obj(o.obj()); }
  95   oop(const volatile oop& o)          { set_obj(o.obj()); }
  96   oop(const void* p)                  { set_obj(p); }
  97   ~oop()                              {
  98     if (CheckUnhandledOops) unregister_oop();
  99   }
 100 
 101   oopDesc* obj()  const volatile      { return _o; }
 102 
 103   // General access
 104   oopDesc*  operator->() const        { return obj(); }
 105   bool operator==(const oop o) const  {
 106 #if INCLUDE_ALL_GCS
 107     if (ShenandoahVerifyObjectEquals) {
 108       ShouldNotReachHere();
 109     }
 110 #endif
 111     return obj() == o.obj();
 112   }
 113   bool operator==(void *p) const      { return obj() == p; }







 114   bool operator!=(const volatile oop o) const  {
 115 #if INCLUDE_ALL_GCS
 116     if (ShenandoahVerifyObjectEquals) {
 117       ShouldNotReachHere();
 118     }
 119 #endif
 120     return obj() != o.obj();
 121   }
 122   bool operator!=(void *p) const      { return obj() != p; }







 123 
 124   bool operator<(oop o) const         { return obj() < o.obj(); }
 125   bool operator>(oop o) const         { return obj() > o.obj(); }
 126   bool operator<=(oop o) const        { return obj() <= o.obj(); }
 127   bool operator>=(oop o) const        { return obj() >= o.obj(); }
 128   bool operator!() const              { return !obj(); }
 129 
 130   // Assignment
 131   oop& operator=(const oop& o)                            { _o = o.obj(); return *this; }
 132 #ifndef SOLARIS
 133   volatile oop& operator=(const oop& o) volatile          { _o = o.obj(); return *this; }
 134 #endif
 135   volatile oop& operator=(const volatile oop& o) volatile { _o = o.obj(); return *this; }
 136 
 137   // Explict user conversions
 138   operator void* () const             { return (void *)obj(); }
 139 #ifndef SOLARIS
 140   operator void* () const volatile    { return (void *)obj(); }
 141 #endif
 142   operator HeapWord* () const         { return (HeapWord*)obj(); }


< prev index next >