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());
|