>>>>> On Thu, 3 Mar 2005 09:17:07 -0000 (GMT), "Phil Thompson" <[EMAIL 
>>>>> PROTECTED]> said:

   Enabling tracing with SIP, I get the following when I call the
clone() member function in C++...

FunctionBase * sipFunctionBase::clone() const (this=0x083b0878)
python.clone
sipFunctionBase::sipFunctionBase(const FunctionBase&) (this=0x0842b2d8)
python.copy
sipFunctionBase::~sipFunctionBase() (this=0x0842b2d8)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1075068096 (LWP 12449)]
0x41abf5d8 in FunctionProjector::initializeFunction (this=0x8403940, 
    projector=0xbfffe4f0)
    at ../../hippodraw/projectors/FunctionProjector.cxx:135
Current language:  auto; currently c++
(gdb) 

The Python code looks like ...

from sihippo import FunctionBase
class Linear ( FunctionBase ) :
    def __init__ ( self, other = None ) :
        if other :
            FunctionBase.__init__( self, other )
            print "python.copy"
            self.initialize ()
        else:
            FunctionBase.__init__( self )
            print "python.default"
            self.initialize ()

    def clone ( self ) :
        print "python.clone"
        return Linear ( self )
    

The segmenetation fault above occurs when I try to use the cloned
function from C++.  It appears that SIP is destroying the clone
function when returning from the clone member function implemented in
Python. 

   What might I try next?

_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to