Skip to content

Commit feec4a8

Browse files
author
Matthias Grimmer
committed
Factor language check into guard helper method in CachedObjectAccessNode
1 parent 706194f commit feec4a8

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/CachedObjectAccessNode.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,25 @@ public Object executeWith(VirtualFrame frame, TruffleObject receiver, Object[] a
5353
}
5454

5555
private Object doAccess(VirtualFrame frame, TruffleObject receiver, Object[] arguments) {
56-
if ((languageCheckAsNode != null && (boolean) languageCheckAsNode.call(frame, new Object[]{receiver})) || languageCheck.canHandle(receiver)) {
56+
if (accept(frame, receiver)) {
5757
return callTarget.call(frame, accessArguments.executeCreate(receiver, arguments));
5858
} else {
59-
return next.executeWith(frame, receiver, arguments);
59+
return doNext(frame, receiver, arguments);
6060
}
6161
}
6262

63+
private boolean accept(VirtualFrame frame, TruffleObject receiver) {
64+
if ((languageCheckAsNode != null && (boolean) languageCheckAsNode.call(frame, new Object[]{receiver}))) {
65+
return true;
66+
} else if (languageCheckAsNode == null && languageCheck.canHandle(receiver)) {
67+
return true;
68+
} else {
69+
return false;
70+
}
71+
}
72+
73+
private Object doNext(VirtualFrame frame, TruffleObject receiver, Object[] arguments) {
74+
return next.executeWith(frame, receiver, arguments);
75+
}
76+
6377
}

0 commit comments

Comments
 (0)