Skip to content

Commit

Permalink
Fix object header size calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
dominikmascherbauer committed Oct 10, 2024
1 parent 55893c8 commit 38ff28c
Showing 1 changed file with 4 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -430,22 +430,12 @@ private Stream<DebugTypeInfo> computeHeaderTypeInfo() {

List<DebugTypeInfo> infos = new LinkedList<>();
int hubOffset = ol.getHubOffset();
int hubFieldSize = referenceSize;
int objHeaderSize = hubOffset + hubFieldSize;

int idHashSize = ol.sizeInBytes(JavaKind.Int);
int fixedIdHashOffset = -1;
NativeImageHeaderTypeInfo objHeader = new NativeImageHeaderTypeInfo("_objhdr", ol.getFirstFieldOffset());
objHeader.addField("hub", hubType, hubOffset, referenceSize);
if (ol.isIdentityHashFieldInObjectHeader()) {
fixedIdHashOffset = ol.getObjectHeaderIdentityHashOffset();
objHeaderSize = Math.max(objHeaderSize, fixedIdHashOffset + idHashSize);
}

/* We need array headers for all Java kinds */

NativeImageHeaderTypeInfo objHeader = new NativeImageHeaderTypeInfo("_objhdr", objHeaderSize);
objHeader.addField("hub", hubType, hubOffset, hubFieldSize);
if (fixedIdHashOffset >= 0) {
objHeader.addField("idHash", javaKindToHostedType.get(JavaKind.Int), fixedIdHashOffset, idHashSize);
int idHashSize = ol.sizeInBytes(JavaKind.Int);
objHeader.addField("idHash", javaKindToHostedType.get(JavaKind.Int), ol.getObjectHeaderIdentityHashOffset(), idHashSize);
}
infos.add(objHeader);

Expand Down

0 comments on commit 38ff28c

Please sign in to comment.