Skip to content

Commit 3a862f3

Browse files
committed
Remove LazyPythonClass use in MarshalModule
1 parent 3d4614e commit 3a862f3

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/MarshalModuleBuiltins.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@
6363
import com.oracle.graal.python.builtins.objects.ints.PInt;
6464
import com.oracle.graal.python.builtins.objects.list.PList;
6565
import com.oracle.graal.python.builtins.objects.memoryview.PMemoryView;
66+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
6667
import com.oracle.graal.python.builtins.objects.set.PFrozenSet;
6768
import com.oracle.graal.python.builtins.objects.set.PSet;
6869
import com.oracle.graal.python.builtins.objects.str.PString;
6970
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
70-
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
7171
import com.oracle.graal.python.nodes.ErrorMessages;
7272
import com.oracle.graal.python.nodes.IndirectCallNode;
7373
import com.oracle.graal.python.nodes.PNodeWithState;
@@ -231,6 +231,7 @@ abstract static class MarshallerNode extends PNodeWithState {
231231
@Child private MarshallerNode recursiveNode;
232232
private int depth = 0;
233233
@Child private IsBuiltinClassProfile isBuiltinProfile;
234+
@Child private PythonObjectLibrary plib;
234235

235236
protected MarshallerNode getRecursiveNode() {
236237
if (recursiveNode == null) {
@@ -492,13 +493,17 @@ void handlePNone(PNone v, int version, DataOutputStream buffer) {
492493

493494
@Fallback
494495
void writeObject(Object v, int version, DataOutputStream buffer) {
496+
if (plib == null) {
497+
CompilerDirectives.transferToInterpreterAndInvalidate();
498+
plib = insert(PythonObjectLibrary.getFactory().create(v));
499+
}
495500
if (depth >= MAX_MARSHAL_STACK_DEPTH) {
496501
throw raise(ValueError, ErrorMessages.MAX_MARSHAL_STACK_DEPTH);
497502
} else if (v == null) {
498503
writeByte(TYPE_NULL, version, buffer);
499504
} else if (v == PNone.NONE) {
500505
writeByte(TYPE_NONE, version, buffer);
501-
} else if (v instanceof LazyPythonClass) {
506+
} else if (plib.isLazyPythonClass(v)) {
502507
if (isBuiltinProfile == null) {
503508
CompilerDirectives.transferToInterpreterAndInvalidate();
504509
isBuiltinProfile = insert(IsBuiltinClassProfile.create());

0 commit comments

Comments
 (0)