[PyKDE] Model indexes and internal pointers

Phil Thompson phil at riverbankcomputing.co.uk
Mon Jul 17 23:23:47 BST 2006


On Monday 17 July 2006 10:09 pm, Arve Knudsen wrote:
> On 7/17/06, Andreas Pakulat <apaku at gmx.de> wrote:
> > On 17.07.06 22:00:41, Arve Knudsen wrote:
> > > Ok, I found the original thread. There is no explanation as to why no
> > > extra reference is kept however.
> >
> > I don't know too much about python refcounting, but I think one problem
> > could be what to do if the model index disappears. Also decrease the
> > reference count? This could lead to a problem if "something" else still
> > needs the object... Phil needs to answer this.
>
> When the model index is destroyed, it should decrease the reference
> count seems like the obvious answer. If the object is referred to
> elsewhere its reference count should reflect this.

And you also have to implement the hooks for the cyclic garbage collector.

> > > There might be a good reason for this
> > > behaviour, but it does represent a rather nasty pitfall.
> >
> > Well, that's probably a reason why it was introduced so late, you had to
> > use internalId before.
>
> My impression from reading the thread is that it was non-trivial to
> implement, but added out of a real need, expressed by users.

It was trivial to implement, once it was pointed out to me that the original 
(automated) wrapping was useless given the way it is supposed to be used.

There are plenty of other places where you have to keep an external reference 
to stop an object being garbage collected causing a crash. I just need to 
decide if this is worth making a special case.

Phil




More information about the PyQt mailing list