[PyKDE] PyQt segfault with QStringList
    Phil Thompson 
    phil at riverbankcomputing.co.uk
       
    Mon Jul 21 00:56:00 BST 2003
    
    
  
On Sunday 20 July 2003 8:43 pm, Torsten Marek wrote:
> Hello,
>
> is it an intended behaviour, that
>
> ### -- code --
> from qt import *
> class Test:
> 	def __init__(self):
> 		self.str = QStringList.split(".", "test.tst")[0]
> 	def test(self):
> 		print self.str
> ### -- code --
>
> segfaults? It is obvious that self.str does not "steal" a reference, and
> that can be easily circumvented by putting QStringList(....)[0] into a
> QString constructor, but I do think that this behaviour is not very
> intuitive.
But it is the behaviour at the C++ level where you would also call the QString 
ctor with the result.
> The operator[](*) functions of QStringList return sipMapCppToSelf(...),
> is it possible to call Py_INCREF on them? Or is it impossible due to the
> implementation of QStringList on C++ level?
To do what you expect the handwritten code implementing QStringList[] would 
make a copy using the reference returned - easy to do but would make the 
Python behaviour slightly different to the C++ behaviour.
Phil
    
    
More information about the PyQt
mailing list