On Friday 09 April 2004 1:47 am, Paul F. Kunz wrote:
>    In this script
>
> import sys
> from qt import *
> from sihippo import *
>
> app = QApplication ( sys.argv )
> ntc = NTupleController.instance()
> nt2 = ntc.createCircularBuffer(2)
> nt2.setLabels(['Time', 'TEM Current'])
> nt2.setTitle('GTIC Test2')
> time_list = range(100)
> amps = [0.0] * 100
> try :
>     nt2.addColumn('Time', time_list)
>     nt2.addColumn('TEM Current', amps)
> except DataSourceException, detail :
>     print detail.what()
>
> the nt2.addColumn() throws and exception in C++.   If SIPed with -e it
> works fine...
>
> [EMAIL PROTECTED] sip]$ python cb_addcol.py
> NTuple::addColumn: column has wrong size
> [EMAIL PROTECTED] sip]$
>
> But when SIPed with -e -g it yields ...
>
> [EMAIL PROTECTED] sip]$ python cb_addcol.py
> Segmentation fault (core dumped)
> [EMAIL PROTECTED] sip]$
>
> It also worked fine with SIP 3.8 and later.   This is true both for
> Linux and Windows.
>
> The group using this code needs SIP 4.x and the -g option for other
> reasons.
>
>    What might be the cause of this problem.   The .sip file for
> DataSourceException.sip is enclosed.
>
> ---
>
> class DataSourceException
> {
> %TypeHeaderCode
> #include "datasrcs/DataSourceException.h"
> %End
>
>
> public:
>
>   DataSourceException ( const std::string & );
>   const char * what () const throw ();
>
>   char * __str__();
> %MethodCode
>     return PyString_FromString ( sipCpp->what() );
> %End
>
> };

There is a bug in SIP v4 (fixed in tonight's snapshot) that happens only if 
you specify both the -e and -g flags - but I'm not convinced it would affect 
the above. (Depends on what the rest of your module is doing I suppose.)

Note that the -g flag isn't tested and was only really there as an emergency 
fallback in case there were problems with the new GIL management code (which 
there aren't). You really shouldn't need to use it.

Phil

_______________________________________________
PyKDE mailing list    [EMAIL PROTECTED]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to