Try to be strict around non-copyability by filmor · Pull Request #2440 · pythonnet/pythonnet
| public double ToDouble() => Runtime.PyFloat_AsDouble(obj); | ||
|
|
||
| public override TypeCode GetTypeCode() => TypeCode.Double; | ||
| public override int GetHashCode() => ((PyObject)this).GetHashCode(); |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like it would just stackoverflow
| } | ||
|
|
||
| public override TypeCode GetTypeCode() => TypeCode.Int64; | ||
| public override int GetHashCode() => ((PyObject)this).GetHashCode(); |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same
Comment on lines +86 to +87
| var free = (delegate* unmanaged[Cdecl]<ref StolenReference, void>)freePtr; | ||
| free(ref ob); |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is wrong. It does not say anywhere but I'd expect tp_free to take a reference to PyObject (e.g. PyObject*), not a reference to reference to it (e.g. not a PyObject**).
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that's probably one reason for the crashes :)
Not abandoned, just very low priority. We have to fix these warnings eventually, they are extremely spammy and the non-copyability check is borderline useless right now. Either we fix things or we drop the analyzer until an official one is added.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters