hotspot/src/share/vm/classfile/javaClasses.hpp
changeset 360 21d113ecbf6a
parent 195 9193828514c4
child 379 10767ca40189
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
   689   static int static_lock_offset;
   689   static int static_lock_offset;
   690   static int static_pending_offset;
   690   static int static_pending_offset;
   691   static int number_of_fake_oop_fields;
   691   static int number_of_fake_oop_fields;
   692 
   692 
   693   // Accessors
   693   // Accessors
   694   static oop referent(oop ref)        { return *referent_addr(ref); }
   694   static oop referent(oop ref) {
   695   static void set_referent(oop ref, oop value);
   695     return ref->obj_field(referent_offset);
   696   static oop* referent_addr(oop ref);
   696   }
   697 
   697   static void set_referent(oop ref, oop value) {
   698   static oop next(oop ref)            { return *next_addr(ref); }
   698     ref->obj_field_put(referent_offset, value);
   699   static void set_next(oop ref, oop value);
   699   }
   700   static oop* next_addr(oop ref);
   700   static void set_referent_raw(oop ref, oop value) {
   701 
   701     ref->obj_field_raw_put(referent_offset, value);
   702   static oop discovered(oop ref)      { return *discovered_addr(ref); }
   702   }
   703   static void set_discovered(oop ref, oop value);
   703   static HeapWord* referent_addr(oop ref) {
   704   static oop* discovered_addr(oop ref);
   704     return ref->obj_field_addr<HeapWord>(referent_offset);
   705 
   705   }
       
   706   static oop next(oop ref) {
       
   707     return ref->obj_field(next_offset);
       
   708   }
       
   709   static void set_next(oop ref, oop value) {
       
   710     ref->obj_field_put(next_offset, value);
       
   711   }
       
   712   static void set_next_raw(oop ref, oop value) {
       
   713     ref->obj_field_raw_put(next_offset, value);
       
   714   }
       
   715   static HeapWord* next_addr(oop ref) {
       
   716     return ref->obj_field_addr<HeapWord>(next_offset);
       
   717   }
       
   718   static oop discovered(oop ref) {
       
   719     return ref->obj_field(discovered_offset);
       
   720   }
       
   721   static void set_discovered(oop ref, oop value) {
       
   722     ref->obj_field_put(discovered_offset, value);
       
   723   }
       
   724   static void set_discovered_raw(oop ref, oop value) {
       
   725     ref->obj_field_raw_put(discovered_offset, value);
       
   726   }
       
   727   static HeapWord* discovered_addr(oop ref) {
       
   728     return ref->obj_field_addr<HeapWord>(discovered_offset);
       
   729   }
   706   // Accessors for statics
   730   // Accessors for statics
   707   static oop  pending_list_lock()     { return *pending_list_lock_addr(); }
   731   static oop  pending_list_lock();
   708   static oop  pending_list()          { return *pending_list_addr(); }
   732   static oop  pending_list();
   709 
   733 
   710   static oop* pending_list_lock_addr();
   734   static HeapWord*  pending_list_addr();
   711   static oop* pending_list_addr();
       
   712 };
   735 };
   713 
   736 
   714 
   737 
   715 // Interface to java.lang.ref.SoftReference objects
   738 // Interface to java.lang.ref.SoftReference objects
   716 
   739