Skip to content

Commit 87743f1

Browse files
committed
[GR-71351] Simplify UnsafeField.resolveReceiver.
PullRequest: graal/22749
2 parents 747ce5b + b689372 commit 87743f1

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

truffle/src/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/InlineSupport.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -1175,7 +1175,8 @@ final Object resolveReceiver(Object node) {
11751175
// slow path with parent resolve
11761176
value = resolveReceiverSlow(node);
11771177
}
1178-
return receiverClass.cast(value);
1178+
assert receiverClass.isInstance(value);
1179+
return value;
11791180
}
11801181

11811182
/**
@@ -1184,26 +1185,20 @@ final Object resolveReceiver(Object node) {
11841185
*/
11851186
@ExplodeLoop
11861187
private Object resolveReceiverSlow(Object node) {
1187-
if (receiverClass.isInstance(node)) {
1188-
/*
1189-
* if the receiver type does not happen to be exact, handle this here to not slow
1190-
* down the fast-path.
1191-
*/
1192-
return node;
1193-
}
11941188
Object receiver = node;
11951189
while (receiver != null) {
1196-
assert validateForParentLookup(node, receiver);
1197-
receiver = U.getObject(receiver, PARENT.offset);
11981190
if (receiverClass.isInstance(receiver)) {
1199-
break;
1191+
/*
1192+
* if the receiver type does not happen to be exact, handle this here to not
1193+
* slow down the fast-path.
1194+
*/
1195+
return receiver;
12001196
}
1197+
assert validateForParentLookup(node, receiver);
1198+
receiver = U.getObject(receiver, PARENT.offset);
12011199
}
12021200

1203-
if (receiver == null) {
1204-
throw nullError(node);
1205-
}
1206-
return receiver;
1201+
throw nullError(node);
12071202
}
12081203

12091204
/**

0 commit comments

Comments
 (0)