225 if (Assert.ASSERTS_ENABLED) {
226 Assert.that(isLinked(), "Class status is not consistent");
227 }
228 result |= JVMDIClassStatus.INITIALIZED;
229 }
230
231 if (isInErrorState()) {
232 result |= JVMDIClassStatus.ERROR;
233 }
234 return result;
235 }
236
237 // Byteside of the header
238 private static long headerSize;
239
240 public long getObjectSize(Oop object) {
241 return getSizeHelper() * VM.getVM().getAddressSize();
242 }
243
244 public long getSize() {
245 return Oop.alignObjectSize(getHeaderSize() + getVtableLen() +
246 getItableLen() + getNonstaticOopMapSize());
247 }
248
249 public static long getHeaderSize() { return headerSize; }
250
251 public short getFieldAccessFlags(int index) {
252 return getFields().at(index * FIELD_SLOTS + ACCESS_FLAGS_OFFSET);
253 }
254
255 public short getFieldNameIndex(int index) {
256 if (index >= getJavaFieldsCount()) throw new IndexOutOfBoundsException("not a Java field;");
257 return getFields().at(index * FIELD_SLOTS + NAME_INDEX_OFFSET);
258 }
259
260 public Symbol getFieldName(int index) {
261 int nameIndex = getFields().at(index * FIELD_SLOTS + NAME_INDEX_OFFSET);
262 if (index < getJavaFieldsCount()) {
263 return getConstants().getSymbolAt(nameIndex);
264 } else {
265 return vmSymbols.symbolAt(nameIndex);
266 }
|
225 if (Assert.ASSERTS_ENABLED) {
226 Assert.that(isLinked(), "Class status is not consistent");
227 }
228 result |= JVMDIClassStatus.INITIALIZED;
229 }
230
231 if (isInErrorState()) {
232 result |= JVMDIClassStatus.ERROR;
233 }
234 return result;
235 }
236
237 // Byteside of the header
238 private static long headerSize;
239
240 public long getObjectSize(Oop object) {
241 return getSizeHelper() * VM.getVM().getAddressSize();
242 }
243
244 public long getSize() {
245 return alignSize(getHeaderSize() + getVtableLen() + getItableLen() + getNonstaticOopMapSize());
246 }
247
248 public static long getHeaderSize() { return headerSize; }
249
250 public short getFieldAccessFlags(int index) {
251 return getFields().at(index * FIELD_SLOTS + ACCESS_FLAGS_OFFSET);
252 }
253
254 public short getFieldNameIndex(int index) {
255 if (index >= getJavaFieldsCount()) throw new IndexOutOfBoundsException("not a Java field;");
256 return getFields().at(index * FIELD_SLOTS + NAME_INDEX_OFFSET);
257 }
258
259 public Symbol getFieldName(int index) {
260 int nameIndex = getFields().at(index * FIELD_SLOTS + NAME_INDEX_OFFSET);
261 if (index < getJavaFieldsCount()) {
262 return getConstants().getSymbolAt(nameIndex);
263 } else {
264 return vmSymbols.symbolAt(nameIndex);
265 }
|