Skip to content

Commit 8e0b3e0

Browse files
committed
Remove leftover support for spanning multiple consecutive fields.
1 parent 65d734c commit 8e0b3e0

File tree

1 file changed

+5
-14
lines changed
  • truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object

1 file changed

+5
-14
lines changed

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ExtAllocator.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -245,27 +245,18 @@ private static int tryAllocatePrimitiveSlot(ExtLayout l, int startIndex, final i
245245
// no primitive fields in this layout that are wide enough
246246
return -1;
247247
}
248-
next: for (int fieldIndex = startIndex; fieldIndex < l.getPrimitiveFieldCount(); fieldIndex++) {
248+
for (int fieldIndex = startIndex; fieldIndex < l.getPrimitiveFieldCount(); fieldIndex++) {
249249
// ensure alignment
250250
final int align = desiredBytes - 1;
251-
while ((l.getPrimitiveField(fieldIndex).offset() & align) != 0) {
252-
continue next;
253-
}
254-
255251
FieldInfo fieldInfo = l.getPrimitiveField(fieldIndex);
252+
if ((fieldInfo.offset() & align) != 0) {
253+
continue;
254+
}
256255

257-
// if we do not have enough space in one field, try to span multiple consecutive fields
258256
int availableBytes = fieldInfo.getBytes();
259-
int lastFieldIndex = fieldIndex;
260-
while (availableBytes < desiredBytes &&
261-
lastFieldIndex + 1 < l.getPrimitiveFieldCount() &&
262-
l.getPrimitiveField(lastFieldIndex + 1).offset() == l.getPrimitiveField(lastFieldIndex).offset() + l.getPrimitiveField(lastFieldIndex).getBytes()) {
263-
availableBytes += l.getPrimitiveField(lastFieldIndex + 1).getBytes();
264-
lastFieldIndex++;
265-
}
266257
if (availableBytes < desiredBytes) {
267258
// this field is not suitable for the desired number of bytes, try the next one
268-
continue next;
259+
continue;
269260
}
270261

271262
return fieldIndex;

0 commit comments

Comments
 (0)