Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cd97a46

Browse files
committed
fixed MethodBinding failing for reference types
1 parent a1427ac commit cd97a46

File tree

1 file changed

+3
-10
lines changed

1 file changed

+3
-10
lines changed

src/runtime/methodbinding.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ internal class MethodBinding : ExtensionType
1717
internal MaybeMethodInfo info;
1818
internal MethodObject m;
1919
internal PyObject? target;
20-
internal PyType targetType;
20+
internal PyType? targetType;
2121

2222
public MethodBinding(MethodObject m, PyObject? target, PyType? targetType = null)
2323
{
2424
this.target = target;
2525

26-
this.targetType = targetType ?? target.GetPythonType();
26+
this.targetType = targetType ?? target?.GetPythonType();
2727

2828
this.info = null;
2929
this.m = m;
@@ -48,7 +48,7 @@ public static NewReference mp_subscript(BorrowedReference tp, BorrowedReference
4848
return Exceptions.RaiseTypeError("No match found for given type params");
4949
}
5050

51-
var mb = new MethodBinding(self.m, self.target) { info = mi };
51+
var mb = new MethodBinding(self.m, self.target, self.targetType) { info = mi };
5252
return new NewReference(mb.pyHandle);
5353
}
5454

@@ -289,12 +289,5 @@ protected override void Clear(BorrowedReference ob)
289289
this.targetType = null!;
290290
base.Clear(ob);
291291
}
292-
293-
protected override void OnSave(InterDomainContext context)
294-
{
295-
base.OnSave(context);
296-
Runtime.XIncref(target);
297-
Runtime.XIncref(targetType);
298-
}
299292
}
300293
}

0 commit comments

Comments
 (0)