[Adding back the list - I accidentally hit "reply" instead of "reply all" in previous email]
On Friday, February 22, 2013 01:38:51 PM Daniel Veillard wrote: > [sending again since mail was apparently lost] > > On Thu, Feb 21, 2013 at 10:21:18AM -0800, Alexey Neyman wrote: > > On Thursday, February 21, 2013 04:01:45 PM you wrote: > > > On Wed, Feb 20, 2013 at 06:28:25PM -0800, Alexey Neyman wrote: > > > > Hi libxml developers, > > > > > > > > [BTW, is this list alive?] > > > > > > > yes, why ? > > > > I've sent another patch 3 days ago, and there was no response at all. Here > > it is: > > > > https://mail.gnome.org/archives/xml/2013-February/msg00013.html > > yep, I saw it, but it's more complex, I'm worried about what happens > if there is some kind of deallocation like calling popInputCallbacks() > from the python bindings themselves, while said input is still in use > by a parser, I smell some reference counting would have to be added to > take care of this, i.e. the single > Py_INCREF(pythonInputOpenCallbackObject); > on registration may not be sufficient to cover that case. The problem > is that the new use is done directly from C and there is no mechanism we > can use to increment/decrement the counter when a parser creates an > input based on those callbacks.
I see your point... If I understand it correctly, I need to increment the refcount each time open callback succeeds (i.e. in pythonInputOpenCallback(), when the return value is not Py_None) and decrement it whenever the close callback is called (i.e., wrap xmlPythonFileCloseRaw() into a new function, pythonInputCloseCallback()).
Am I missing anything?
> So i'm afraid we are stuck with a known > problem we can't fix, unless we never release the python reference, > which creates a leak (but a leak is better than a crash) > > in any case tests suite addition would be welcome, yes :-)
Yes, I just wanted to first settle on the API for the binding :)
Regards, Alexey.
|