agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java

Print this page
rev 146 : [mq]: mixa.layout.patch


  97     }
  98     return javaLangObjectName;
  99   }
 100 
 101   private static Symbol javaIoSerializableName() {
 102     if (javaIoSerializableName == null) {
 103       javaIoSerializableName = VM.getVM().getSymbolTable().probe("java/io/Serializable");
 104     }
 105     return javaIoSerializableName;
 106   }
 107 
 108   public int getClassStatus() {
 109      return JVMDIClassStatus.VERIFIED | JVMDIClassStatus.PREPARED | JVMDIClassStatus.INITIALIZED;
 110   }
 111 
 112   public long computeModifierFlags() {
 113      return JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC;
 114   }
 115 
 116   public long getArrayHeaderInBytes() {
 117     return Bits.maskBits(getLayoutHelper() >> LH_HEADER_SIZE_SHIFT, 0xFF);
 118   }
 119 
 120   public int getLog2ElementSize() {
 121     return Bits.maskBits(getLayoutHelper() >> LH_LOG2_ELEMENT_SIZE_SHIFT, 0xFF);
 122   }
 123 
 124   public int getElementType() {
 125     return Bits.maskBits(getLayoutHelper() >> LH_ELEMENT_TYPE_SHIFT, 0xFF);
 126   }
 127 
 128   boolean computeSubtypeOf(Klass k) {
 129     // An array is a subtype of Serializable, Clonable, and Object
 130     Symbol name = k.getName();
 131     if (name != null && (name.equals(javaIoSerializableName()) ||
 132                          name.equals(javaLangCloneableName()) ||
 133                          name.equals(javaLangObjectName()))) {
 134       return true;
 135     } else {
 136       return false;
 137     }
 138   }
 139 
 140   public void printValueOn(PrintStream tty) {
 141     tty.print("ArrayKlass");
 142   }
 143 
 144   public long getObjectSize() {
 145     return alignObjectSize(InstanceKlass.getHeaderSize() + getVtableLen() * getHeap().getOopSize());


  97     }
  98     return javaLangObjectName;
  99   }
 100 
 101   private static Symbol javaIoSerializableName() {
 102     if (javaIoSerializableName == null) {
 103       javaIoSerializableName = VM.getVM().getSymbolTable().probe("java/io/Serializable");
 104     }
 105     return javaIoSerializableName;
 106   }
 107 
 108   public int getClassStatus() {
 109      return JVMDIClassStatus.VERIFIED | JVMDIClassStatus.PREPARED | JVMDIClassStatus.INITIALIZED;
 110   }
 111 
 112   public long computeModifierFlags() {
 113      return JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC;
 114   }
 115 
 116   public long getArrayHeaderInBytes() {
 117     return getHeaderSizeInBytes();








 118   }
 119 
 120   boolean computeSubtypeOf(Klass k) {
 121     // An array is a subtype of Serializable, Clonable, and Object
 122     Symbol name = k.getName();
 123     if (name != null && (name.equals(javaIoSerializableName()) ||
 124                          name.equals(javaLangCloneableName()) ||
 125                          name.equals(javaLangObjectName()))) {
 126       return true;
 127     } else {
 128       return false;
 129     }
 130   }
 131 
 132   public void printValueOn(PrintStream tty) {
 133     tty.print("ArrayKlass");
 134   }
 135 
 136   public long getObjectSize() {
 137     return alignObjectSize(InstanceKlass.getHeaderSize() + getVtableLen() * getHeap().getOopSize());