< prev index next >

src/hotspot/share/oops/oop.hpp

Print this page
rev 51997 : 8211279: Verify missing object equals barriers


 137 
 138   template <typename T> inline size_t field_offset(T* p) const;
 139 
 140   // Standard compare function returns negative value if o1 < o2
 141   //                                   0              if o1 == o2
 142   //                                   positive value if o1 > o2
 143   inline static int  compare(oop o1, oop o2) {
 144     void* o1_addr = (void*)o1;
 145     void* o2_addr = (void*)o2;
 146     if (o1_addr < o2_addr) {
 147       return -1;
 148     } else if (o1_addr > o2_addr) {
 149       return 1;
 150     } else {
 151       return 0;
 152     }
 153   }
 154 
 155   inline static bool equals(oop o1, oop o2) { return Access<>::equals(o1, o2); }
 156 


 157   // Access to fields in a instanceOop through these methods.
 158   template <DecoratorSet decorator>
 159   oop obj_field_access(int offset) const;
 160   oop obj_field(int offset) const;
 161   void obj_field_put(int offset, oop value);
 162   void obj_field_put_raw(int offset, oop value);
 163   void obj_field_put_volatile(int offset, oop value);
 164 
 165   Metadata* metadata_field(int offset) const;
 166   Metadata* metadata_field_raw(int offset) const;
 167   void metadata_field_put(int offset, Metadata* value);
 168 
 169   Metadata* metadata_field_acquire(int offset) const;
 170   void release_metadata_field_put(int offset, Metadata* value);
 171 
 172   jbyte byte_field(int offset) const;
 173   void byte_field_put(int offset, jbyte contents);
 174 
 175   jchar char_field(int offset) const;
 176   void char_field_put(int offset, jchar contents);




 137 
 138   template <typename T> inline size_t field_offset(T* p) const;
 139 
 140   // Standard compare function returns negative value if o1 < o2
 141   //                                   0              if o1 == o2
 142   //                                   positive value if o1 > o2
 143   inline static int  compare(oop o1, oop o2) {
 144     void* o1_addr = (void*)o1;
 145     void* o2_addr = (void*)o2;
 146     if (o1_addr < o2_addr) {
 147       return -1;
 148     } else if (o1_addr > o2_addr) {
 149       return 1;
 150     } else {
 151       return 0;
 152     }
 153   }
 154 
 155   inline static bool equals(oop o1, oop o2) { return Access<>::equals(o1, o2); }
 156 
 157   inline static bool equals_raw(oop o1, oop o2) { return RawAccess<>::equals(o1, o2); }
 158 
 159   // Access to fields in a instanceOop through these methods.
 160   template <DecoratorSet decorator>
 161   oop obj_field_access(int offset) const;
 162   oop obj_field(int offset) const;
 163   void obj_field_put(int offset, oop value);
 164   void obj_field_put_raw(int offset, oop value);
 165   void obj_field_put_volatile(int offset, oop value);
 166 
 167   Metadata* metadata_field(int offset) const;
 168   Metadata* metadata_field_raw(int offset) const;
 169   void metadata_field_put(int offset, Metadata* value);
 170 
 171   Metadata* metadata_field_acquire(int offset) const;
 172   void release_metadata_field_put(int offset, Metadata* value);
 173 
 174   jbyte byte_field(int offset) const;
 175   void byte_field_put(int offset, jbyte contents);
 176 
 177   jchar char_field(int offset) const;
 178   void char_field_put(int offset, jchar contents);


< prev index next >