< prev index next >

src/hotspot/share/oops/oop.hpp

erik_version

roman_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   // Access to fields in a instanceOop through these methods.                                                                        
145   template <DecoratorSet decorator>                                                                                                  
146   oop obj_field_access(int offset) const;                                                                                            
147   oop obj_field(int offset) const;                                                                                                   
148   void obj_field_put(int offset, oop value);                                                                                         
149   void obj_field_put_raw(int offset, oop value);                                                                                     
150   void obj_field_put_volatile(int offset, oop value);                                                                                
151 
152   Metadata* metadata_field(int offset) const;                                                                                        
153   void metadata_field_put(int offset, Metadata* value);                                                                              
154 
155   Metadata* metadata_field_acquire(int offset) const;                                                                                
156   void release_metadata_field_put(int offset, Metadata* value);                                                                      
157 
158   jbyte byte_field(int offset) const;                                                                                                
159   void byte_field_put(int offset, jbyte contents);                                                                                   
160 
161   jchar char_field(int offset) const;                                                                                                
162   void char_field_put(int offset, jchar contents);                                                                                   

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;
164   void char_field_put(int offset, jchar contents);
< prev index next >