[Eric] Bugs in latest eric4 snapshot

Jürgen Urner jUrner at arcor.de
Wed Apr 4 21:20:17 BST 2007


Andreas Pakulat schrieb:
> On 04.04.07 02:14:05, Andreas Pakulat wrote:
>   
>> Hi,
>>
>> just updated to python2.5 and latest snapshots of pyqt4/sip/eric4
>> (20070402) and trying to start it I get:
>>
>> An unhandled exception occurred. Please report the problem using the error reporting dialog or via email to <eric4-bugs at die-offenbachs.de>. A log has been written to "/home/andreas/.eric4/eric4_error.log".
>>     
>
> This seems to be a serious bug in BrowserModel.py, it created indices
> using createIndex( row, column, item ) and later on it uses indices that
> are given to it (for example in the item() function) to retrieve the
> item from a dict. This can't work, using createIndex() will set the
> internalPointer() of that index, but internalId() will return some
> "arbitrary" value (i.e. -1.....). So BrowserModel.py needs to be fixed
> to be consistent, either always use createIndex(row,col,id(item)) or
> always use internalPointer() instead of internalId(). 
>
> However a simple replace in all createIndex() calls still doesn't
> completely fix the model, it seems that something tries to call item()
> with non-source-model indices. I added a print for the pointer and id to
> the item() function adn this is the result:
>
> <refcnt -1257449590 at 0xb50cd770> -1257449616
> An unhandled exception occurred. Please report the problem using the error reporting dialog or via email to <eric4-bugs at die-offenbachs.de>. A log has been written to "/home/andreas/.eric4/eric4_error.log".
>
>
>   

I fell for this, too ...tripple reading the docs for QModelIndex helps.
It says: indices returned by CreateIndex() may (that is will !!) become
invalid over time.

they become invalid for shure when as an item is inserted ahead of
an index or an item is removed ahead of an index. From then on you
are in the hands of GC.

QPersistantModelIndex seems to be no help either (when reading the docs
carefully). Maybe I am missing something here, but the only solution 
seems to
be to implement a model wich does not rely on model indices being persistant
at all.

Jürgen















More information about the Eric mailing list