That makes perfect sense. I'm creating many PyTuple instances on the fly so I needed to make sure calling Dispose() was enough. Thanks ------ Original Message ------ From: "Tony Roberts" <tony@pyxll.com> To: "A list for users and developers of Python for .NET" <pythondotnet@python.org> Sent: 3/31/2016 8:47:44 AM Subject: Re: [Python.NET] PyTuple IDisposable implementation
When the tuple is destroyed each of the members will have their reference count decremented. The tuple 'steals' the references of the members when it's constructed, hence why there's the call to Incref and no need for a corresponding decref. This happens in the Python C API and so there's no need to do anything in the C# code when the tuple is destroyed.
On Wed, Mar 30, 2016 at 8:38 PM Steven Burns <royalstream@hotmail.com> wrote:
I'm creating PyTuple instances using the constructor.
I noticed the constructor calls Runtime.Incref for each of the tuple elements.
But PyTuple doesn't override PyObject's implementation of IDisposable.
It's not clear to me when this references will be cleared.
Thanks,
Steven
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org https://mail.python.org/mailman/listinfo/pythondotnet