src/share/vm/oops/instanceOop.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6703888 Sdiff src/share/vm/oops

src/share/vm/oops/instanceOop.hpp

Print this page




  22  *
  23  */
  24 
  25 // An instanceOop is an instance of a Java Class
  26 // Evaluating "new HashTable()" will create an instanceOop.
  27 
  28 class instanceOopDesc : public oopDesc {
  29  public:
  30   // aligned header size.
  31   static int header_size() { return sizeof(instanceOopDesc)/HeapWordSize; }
  32 
  33   // If compressed, the offset of the fields of the instance may not be aligned.
  34   static int base_offset_in_bytes() {
  35     return UseCompressedOops ?
  36              klass_gap_offset_in_bytes() :
  37              sizeof(instanceOopDesc);
  38   }
  39 
  40   static bool contains_field_offset(int offset, int nonstatic_field_size) {
  41     int base_in_bytes = base_offset_in_bytes();
  42     if (UseCompressedOops) {
  43       return (offset >= base_in_bytes &&
  44               // field can be embedded in header, or is after header.
  45               (offset < (int)sizeof(instanceOopDesc) ||
  46               (offset-(int)sizeof(instanceOopDesc))/wordSize < nonstatic_field_size));
  47     } else {
  48       return (offset >= base_in_bytes &&
  49               (offset-base_in_bytes)/wordSize < nonstatic_field_size);
  50     }
  51   }
  52 };


  22  *
  23  */
  24 
  25 // An instanceOop is an instance of a Java Class
  26 // Evaluating "new HashTable()" will create an instanceOop.
  27 
  28 class instanceOopDesc : public oopDesc {
  29  public:
  30   // aligned header size.
  31   static int header_size() { return sizeof(instanceOopDesc)/HeapWordSize; }
  32 
  33   // If compressed, the offset of the fields of the instance may not be aligned.
  34   static int base_offset_in_bytes() {
  35     return UseCompressedOops ?
  36              klass_gap_offset_in_bytes() :
  37              sizeof(instanceOopDesc);
  38   }
  39 
  40   static bool contains_field_offset(int offset, int nonstatic_field_size) {
  41     int base_in_bytes = base_offset_in_bytes();

  42     return (offset >= base_in_bytes &&
  43             (offset-base_in_bytes) < nonstatic_field_size * heapOopSize);





  44   }

  45 };
src/share/vm/oops/instanceOop.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File