On Fri, Feb 22, 2013 at 12:11:33AM -0800, Alexey Neyman wrote: > [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()).
yes, that's it basically, we need to catch new open and closes and adjust ref counts accordingly. > Am I missing anything? no, hopefully that will be sufficient :-) > > 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 :) Having a test which exercise the above refcount small problem would be a good thing too, thanks a lot ! Daniel -- Daniel Veillard | Open Source and Standards, Red Hat [email protected] | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | virtualization library http://libvirt.org/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] https://mail.gnome.org/mailman/listinfo/xml
