< prev index next >

src/share/vm/oops/oop.inline.hpp

Print this page




 429 
 430 void oopDesc::obj_field_put(int offset, oop value) {
 431   UseCompressedOops ? oop_store(obj_field_addr<narrowOop>(offset), value) :
 432                       oop_store(obj_field_addr<oop>(offset),       value);
 433 }
 434 
 435 void oopDesc::obj_field_put_raw(int offset, oop value) {
 436   UseCompressedOops ?
 437     encode_store_heap_oop(obj_field_addr<narrowOop>(offset), value) :
 438     encode_store_heap_oop(obj_field_addr<oop>(offset),       value);
 439 }
 440 void oopDesc::obj_field_put_volatile(int offset, oop value) {
 441   OrderAccess::release();
 442   obj_field_put(offset, value);
 443   OrderAccess::fence();
 444 }
 445 
 446 Metadata* oopDesc::metadata_field(int offset) const           { return *metadata_field_addr(offset);   }
 447 void oopDesc::metadata_field_put(int offset, Metadata* value) { *metadata_field_addr(offset) = value;  }
 448 




 449 void oopDesc::release_metadata_field_put(int offset, Metadata* value) {
 450   OrderAccess::release_store_ptr(metadata_field_addr(offset), value);
 451 }
 452 
 453 jbyte oopDesc::byte_field(int offset) const                   { return (jbyte) *byte_field_addr(offset);    }
 454 void oopDesc::byte_field_put(int offset, jbyte contents)      { *byte_field_addr(offset) = (jint) contents; }
 455 
 456 jchar oopDesc::char_field(int offset) const                   { return (jchar) *char_field_addr(offset);    }
 457 void oopDesc::char_field_put(int offset, jchar contents)      { *char_field_addr(offset) = (jint) contents; }
 458 
 459 jboolean oopDesc::bool_field(int offset) const                { return (jboolean) *bool_field_addr(offset); }
 460 void oopDesc::bool_field_put(int offset, jboolean contents)   { *bool_field_addr(offset) = (((jint) contents) & 1); }
 461 
 462 jint oopDesc::int_field(int offset) const                     { return *int_field_addr(offset);        }
 463 void oopDesc::int_field_put(int offset, jint contents)        { *int_field_addr(offset) = contents;    }
 464 
 465 jshort oopDesc::short_field(int offset) const                 { return (jshort) *short_field_addr(offset);  }
 466 void oopDesc::short_field_put(int offset, jshort contents)    { *short_field_addr(offset) = (jint) contents;}
 467 
 468 jlong oopDesc::long_field(int offset) const                   { return *long_field_addr(offset);       }




 429 
 430 void oopDesc::obj_field_put(int offset, oop value) {
 431   UseCompressedOops ? oop_store(obj_field_addr<narrowOop>(offset), value) :
 432                       oop_store(obj_field_addr<oop>(offset),       value);
 433 }
 434 
 435 void oopDesc::obj_field_put_raw(int offset, oop value) {
 436   UseCompressedOops ?
 437     encode_store_heap_oop(obj_field_addr<narrowOop>(offset), value) :
 438     encode_store_heap_oop(obj_field_addr<oop>(offset),       value);
 439 }
 440 void oopDesc::obj_field_put_volatile(int offset, oop value) {
 441   OrderAccess::release();
 442   obj_field_put(offset, value);
 443   OrderAccess::fence();
 444 }
 445 
 446 Metadata* oopDesc::metadata_field(int offset) const           { return *metadata_field_addr(offset);   }
 447 void oopDesc::metadata_field_put(int offset, Metadata* value) { *metadata_field_addr(offset) = value;  }
 448 
 449 Metadata* oopDesc::metadata_field_acquire(int offset) const   {
 450   return (Metadata*)OrderAccess::load_ptr_acquire(metadata_field_addr(offset));
 451 }
 452 
 453 void oopDesc::release_metadata_field_put(int offset, Metadata* value) {
 454   OrderAccess::release_store_ptr(metadata_field_addr(offset), value);
 455 }
 456 
 457 jbyte oopDesc::byte_field(int offset) const                   { return (jbyte) *byte_field_addr(offset);    }
 458 void oopDesc::byte_field_put(int offset, jbyte contents)      { *byte_field_addr(offset) = (jint) contents; }
 459 
 460 jchar oopDesc::char_field(int offset) const                   { return (jchar) *char_field_addr(offset);    }
 461 void oopDesc::char_field_put(int offset, jchar contents)      { *char_field_addr(offset) = (jint) contents; }
 462 
 463 jboolean oopDesc::bool_field(int offset) const                { return (jboolean) *bool_field_addr(offset); }
 464 void oopDesc::bool_field_put(int offset, jboolean contents)   { *bool_field_addr(offset) = (((jint) contents) & 1); }
 465 
 466 jint oopDesc::int_field(int offset) const                     { return *int_field_addr(offset);        }
 467 void oopDesc::int_field_put(int offset, jint contents)        { *int_field_addr(offset) = contents;    }
 468 
 469 jshort oopDesc::short_field(int offset) const                 { return (jshort) *short_field_addr(offset);  }
 470 void oopDesc::short_field_put(int offset, jshort contents)    { *short_field_addr(offset) = (jint) contents;}
 471 
 472 jlong oopDesc::long_field(int offset) const                   { return *long_field_addr(offset);       }


< prev index next >