Skip to content

Commit b74934c

Browse files
committed
PythonObject#get/setAttribute() accepts TruffleString only
1 parent 86f8813 commit b74934c

File tree

5 files changed

+8
-15
lines changed

5 files changed

+8
-15
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/PythonBuiltins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ void addConstantsToModuleObject(PythonObject obj) {
297297
HiddenAttr.WriteNode.executeUncached(obj, attr, value);
298298
} else {
299299
assert constant instanceof TruffleString;
300-
obj.setAttribute(constant, value);
300+
obj.setAttribute((TruffleString) constant, value);
301301
}
302302
}
303303
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/PythonObject.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,22 +105,17 @@ public Object getInitialPythonClass() {
105105
return initialPythonClass;
106106
}
107107

108-
@SuppressWarnings("deprecation")
109108
@TruffleBoundary
110-
public final Object getAttribute(Object key) {
111-
return DynamicObjectLibrary.getUncached().getOrDefault(this, assertNoJavaString(key), PNone.NO_VALUE);
109+
public final Object getAttribute(TruffleString key) {
110+
return DynamicObjectLibrary.getUncached().getOrDefault(this, key, PNone.NO_VALUE);
112111
}
113112

114-
@SuppressWarnings("deprecation")
115113
@TruffleBoundary
116-
public void setAttribute(Object nameObj, Object value) {
117-
Object name = assertNoJavaString(nameObj);
118-
assert name instanceof TruffleString : name.getClass().getSimpleName();
114+
public void setAttribute(TruffleString name, Object value) {
119115
CompilerAsserts.neverPartOfCompilation();
120116
DynamicObjectLibrary.getUncached().put(this, name, assertNoJavaString(value));
121117
}
122118

123-
@SuppressWarnings("deprecation")
124119
@TruffleBoundary
125120
public List<TruffleString> getAttributeNames() {
126121
ArrayList<TruffleString> keyList = new ArrayList<>();

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type/PythonBuiltinClass.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public PythonBuiltinClass(PythonLanguage lang, PythonBuiltinClassType builtinCla
7171
}
7272

7373
@Override
74-
public void setAttribute(Object name, Object value) {
74+
public void setAttribute(TruffleString name, Object value) {
7575
CompilerAsserts.neverPartOfCompilation();
7676
if (!PythonContext.get(null).isCoreInitialized()) {
7777
setAttributeUnsafe(name, value);
@@ -83,7 +83,7 @@ public void setAttribute(Object name, Object value) {
8383
/**
8484
* Modify attributes in an unsafe way, should only use when initializing.
8585
*/
86-
public void setAttributeUnsafe(Object name, Object value) {
86+
public void setAttributeUnsafe(TruffleString name, Object value) {
8787
super.setAttribute(name, value);
8888
}
8989

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type/PythonClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public void invalidateSlotsFinalAssumption() {
113113
@Override
114114
@TruffleBoundary
115115
@SuppressFBWarnings(value = "UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR")
116-
public void setAttribute(Object key, Object value) {
116+
public void setAttribute(TruffleString key, Object value) {
117117
if (slotsFinalAssumption != null) {
118118
// It is OK when slotsFinalAssumption is null during the super ctor call
119119
invalidateSlotsFinalAssumption();

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type/PythonManagedClass.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError;
2929
import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___DOC__;
30-
import static com.oracle.graal.python.nodes.truffle.TruffleStringMigrationHelpers.assertNoJavaString;
3130

3231
import com.oracle.graal.python.PythonLanguage;
3332
import com.oracle.graal.python.builtins.objects.PNone;
@@ -213,8 +212,7 @@ private boolean computeNeedsNativeAllocation() {
213212

214213
@Override
215214
@TruffleBoundary
216-
public void setAttribute(Object keyObj, Object value) {
217-
Object key = assertNoJavaString(keyObj);
215+
public void setAttribute(TruffleString key, Object value) {
218216
super.setAttribute(key, value);
219217
onAttributeUpdate(key, value);
220218
}

0 commit comments

Comments
 (0)