Skip to content

Commit e14b04e

Browse files
committed
Convert IsNativeObjectNode to DSL inlinable
1 parent 51eb8d6 commit e14b04e

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/main/java/org/truffleruby/cext/IsNativeObjectNode.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import static org.truffleruby.cext.ValueWrapperManager.isMallocAligned;
1313

1414
import com.oracle.truffle.api.dsl.Fallback;
15+
import com.oracle.truffle.api.dsl.GenerateCached;
16+
import com.oracle.truffle.api.dsl.GenerateInline;
17+
import com.oracle.truffle.api.nodes.Node;
1518
import org.truffleruby.language.RubyBaseNode;
1619

1720
import com.oracle.truffle.api.dsl.GenerateUncached;
@@ -20,18 +23,20 @@
2023
/** The IsNativeObjectNode is implemented to determine if a native pointer belongs to a natively allocated NODE* which
2124
* are used in Ripper. */
2225
@GenerateUncached
26+
@GenerateInline
27+
@GenerateCached(false)
2328
public abstract class IsNativeObjectNode extends RubyBaseNode {
2429

2530
/** Returns true if handle was natively allocated. */
26-
public abstract Object execute(Object handle);
31+
public abstract Object execute(Node node, Object handle);
2732

2833
@Specialization
29-
protected boolean isNativeObjectTaggedObject(long handle) {
34+
protected static boolean isNativeObjectTaggedObject(long handle) {
3035
return isMallocAligned(handle) && handle < ValueWrapperManager.ALLOCATION_BASE;
3136
}
3237

3338
@Fallback
34-
protected boolean isNativeObjectFallback(Object handle) {
39+
protected static boolean isNativeObjectFallback(Object handle) {
3540
return false;
3641
}
3742

src/main/java/org/truffleruby/cext/ValueWrapperManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,8 +465,9 @@ protected boolean isExecutable() {
465465

466466
@ExportMessage
467467
protected Object execute(Object[] arguments,
468-
@Cached IsNativeObjectNode isNativeObjectNode) {
469-
return isNativeObjectNode.execute(arguments[0]);
468+
@Cached IsNativeObjectNode isNativeObjectNode,
469+
@Bind("$node") Node node) {
470+
return isNativeObjectNode.execute(node, arguments[0]);
470471
}
471472
}
472473

0 commit comments

Comments
 (0)