< prev index next >

src/hotspot/share/oops/oop.hpp

erik_version

124   inline void* field_addr_raw(int offset) const;                                                                                     
125 
126   // Need this as public for garbage collection.                                                                                     
127   template <class T> inline T* obj_field_addr_raw(int offset) const;                                                                 
128 
129   // Standard compare function returns negative value if o1 < o2                                                                     
130   //                                   0              if o1 == o2                                                                    
131   //                                   positive value if o1 > o2                                                                     
132   inline static int  compare(oop o1, oop o2) {                                                                                       
133     void* o1_addr = (void*)o1;                                                                                                       
134     void* o2_addr = (void*)o2;                                                                                                       
135     if (o1_addr < o2_addr) {                                                                                                         
136       return -1;                                                                                                                     
137     } else if (o1_addr > o2_addr) {                                                                                                  
138       return 1;                                                                                                                      
139     } else {                                                                                                                         
140       return 0;                                                                                                                      
141     }                                                                                                                                
142   }                                                                                                                                  
143 
144   static bool equals(oop o1, oop o2);                                                                                                
145 
146   // Access to fields in a instanceOop through these methods.                                                                        
147   template <DecoratorSet decorator>                                                                                                  
148   oop obj_field_access(int offset) const;                                                                                            
149   oop obj_field(int offset) const;                                                                                                   
150   void obj_field_put(int offset, oop value);                                                                                         
151   void obj_field_put_raw(int offset, oop value);                                                                                     
152   void obj_field_put_volatile(int offset, oop value);                                                                                
153 
154   Metadata* metadata_field(int offset) const;                                                                                        
155   void metadata_field_put(int offset, Metadata* value);                                                                              
156 
157   Metadata* metadata_field_acquire(int offset) const;                                                                                
158   void release_metadata_field_put(int offset, Metadata* value);                                                                      
159 
160   jbyte byte_field(int offset) const;                                                                                                
161   void byte_field_put(int offset, jbyte contents);                                                                                   
162 
163   jchar char_field(int offset) const;                                                                                                

124   inline void* field_addr_raw(int offset) const;
125 
126   // Need this as public for garbage collection.
127   template <class T> inline T* obj_field_addr_raw(int offset) const;
128 
129   // Standard compare function returns negative value if o1 < o2
130   //                                   0              if o1 == o2
131   //                                   positive value if o1 > o2
132   inline static int  compare(oop o1, oop o2) {
133     void* o1_addr = (void*)o1;
134     void* o2_addr = (void*)o2;
135     if (o1_addr < o2_addr) {
136       return -1;
137     } else if (o1_addr > o2_addr) {
138       return 1;
139     } else {
140       return 0;
141     }
142   }
143 
144   inline static bool equals(oop o1, oop o2) { return Access<>::equals(o1, o2); }
145 
146   // Access to fields in a instanceOop through these methods.
147   template <DecoratorSet decorator>
148   oop obj_field_access(int offset) const;
149   oop obj_field(int offset) const;
150   void obj_field_put(int offset, oop value);
151   void obj_field_put_raw(int offset, oop value);
152   void obj_field_put_volatile(int offset, oop value);
153 
154   Metadata* metadata_field(int offset) const;
155   void metadata_field_put(int offset, Metadata* value);
156 
157   Metadata* metadata_field_acquire(int offset) const;
158   void release_metadata_field_put(int offset, Metadata* value);
159 
160   jbyte byte_field(int offset) const;
161   void byte_field_put(int offset, jbyte contents);
162 
163   jchar char_field(int offset) const;
< prev index next >