Skip to content

Commit 7e3a990

Browse files
committed
few fixes
1 parent f4171cf commit 7e3a990

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

graalpython/com.oracle.graal.python.cext/src/unicodeobject.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,6 @@ void PyUnicode_AppendAndDel(PyObject **pleft, PyObject *right) {
222222
Py_XDECREF(right);
223223
}
224224

225-
static PyObject *interned = NULL;
226-
227225
void PyUnicode_InternInPlace(PyObject **p) {
228226
PyObject *s = *p;
229227
if (s == NULL) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@
134134
import com.oracle.graal.python.nodes.attributes.ReadAttributeFromDynamicObjectNode;
135135
import com.oracle.graal.python.nodes.call.CallNode;
136136
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
137+
import com.oracle.graal.python.nodes.object.BuiltinClassProfiles.IsBuiltinObjectProfile;
137138
import com.oracle.graal.python.nodes.object.GetClassNode;
138139
import com.oracle.graal.python.nodes.truffle.PythonArithmeticTypes;
139140
import com.oracle.graal.python.nodes.truffle.PythonTypes;
@@ -302,10 +303,15 @@ Object withTS(TruffleString str,
302303

303304
@Specialization
304305
Object withPString(PString str,
306+
@Bind("this") Node inliningTarget,
307+
@Cached IsBuiltinObjectProfile isBuiltinClassProfile,
305308
@Cached ReadAttributeFromDynamicObjectNode readNode,
306309
@Shared @Cached StringNodes.InternStringNode internNode,
307310
@Shared @Cached HashingStorageGetItem getItem,
308311
@Shared @Cached HashingStorageSetItem setItem) {
312+
if (!isBuiltinClassProfile.profileObject(inliningTarget, str, PythonBuiltinClassType.PString)) {
313+
return getNativeNull();
314+
}
309315
boolean isInterned = readNode.execute(str, PString.INTERNED) != PNone.NO_VALUE;
310316
if (isInterned) {
311317
return str;
@@ -319,7 +325,7 @@ Object nil(@SuppressWarnings("unused") Object obj) {
319325
* If it's a subclass, we don't really know what putting it in the interned dict might
320326
* do.
321327
*/
322-
return PNone.NONE;
328+
return getNativeNull();
323329
}
324330
}
325331

0 commit comments

Comments
 (0)