Skip to content

Commit 0fa6d98

Browse files
committed
Small cleanup of DataHOlder.
1 parent 4271b46 commit 0fa6d98

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1966,7 +1966,7 @@ public abstract static class DataHolderGetData extends PrimitiveArrayArgumentsNo
19661966

19671967
@Specialization
19681968
protected Object getData(DataHolder data) {
1969-
return data.getAddress();
1969+
return data.getPointer();
19701970
}
19711971
}
19721972

@@ -1975,7 +1975,7 @@ public abstract static class DataHolderSetData extends PrimitiveArrayArgumentsNo
19751975

19761976
@Specialization
19771977
protected Object setData(DataHolder data, Object address) {
1978-
data.setAddress(address);
1978+
data.setPointer(address);
19791979
return nil;
19801980
}
19811981
}

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

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,29 @@
1212
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1313
import com.oracle.truffle.api.interop.InteropLibrary;
1414
import com.oracle.truffle.api.interop.TruffleObject;
15+
import com.oracle.truffle.api.interop.UnsupportedMessageException;
1516
import com.oracle.truffle.api.library.ExportLibrary;
1617
import com.oracle.truffle.api.library.ExportMessage;
1718

1819
import org.truffleruby.RubyLanguage;
20+
import org.truffleruby.interop.TranslateInteropExceptionNode;
1921

2022
/** This object represents a struct pointer in C held by a Ruby object. */
2123
@ExportLibrary(InteropLibrary.class)
2224
public final class DataHolder implements TruffleObject {
2325

24-
private volatile Object address;
26+
private Object pointer;
2527

2628
public DataHolder(Object address) {
27-
this.address = address;
29+
this.pointer = address;
2830
}
2931

30-
public Object getAddress() {
31-
return address;
32+
public Object getPointer() {
33+
return pointer;
3234
}
3335

34-
public void setAddress(Object address) {
35-
this.address = address;
36+
public void setPointer(Object address) {
37+
this.pointer = address;
3638
}
3739

3840
@ExportMessage
@@ -48,13 +50,17 @@ protected Class<RubyLanguage> getLanguage() {
4850
@TruffleBoundary
4951
@Override
5052
public String toString() {
51-
return address.toString();
53+
return pointer.toString();
5254
}
5355

5456
@TruffleBoundary
5557
@ExportMessage
5658
protected String toDisplayString(boolean allowSideEffects) {
5759
final InteropLibrary interop = InteropLibrary.getUncached();
58-
return "DATA_HOLDER: " + interop.toDisplayString(address, allowSideEffects);
60+
try {
61+
return "DATA_HOLDER: " + interop.asString(interop.toDisplayString(pointer, allowSideEffects));
62+
} catch (UnsupportedMessageException e) {
63+
throw TranslateInteropExceptionNode.getUncached().execute(e);
64+
}
5965
}
6066
}

src/main/java/org/truffleruby/core/DataObjectFinalizationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public Object execute(DataObjectFinalizerReference ref) {
7878
private void runFinalizer(DataObjectFinalizerReference ref) throws Error {
7979
try {
8080
if (!getContext().isFinalizing()) {
81-
Object data = ref.dataHolder.getAddress();
81+
Object data = ref.dataHolder.getPointer();
8282
if (!nullNode.isNull(data)) {
8383
final ExtensionCallStack stack = getLanguage().getCurrentThread()
8484
.getCurrentFiber().extensionCallStack;

0 commit comments

Comments
 (0)