[PyQt] Regression in SIP sip-4.8-snapshot-20090409 wrt MappedTypes

Simon Edwards simon at simonzone.com
Sun Apr 19 09:25:11 BST 2009

Hello Phil,

I'm working on getting PyKDE4 trunk working on SIP 4.8 and PyQt 4.5 and 
hit what looks like a fairly straight forward regression bug.

The compile error is:

In function ‘int convertTo_KSharedPtr_0200DNSSD_RemoteService(PyObject*, 
void**, int*, PyObject*)’:
error: ‘sipForceConvertTo_DNSSD’ was not declared in this scope 

error: expected ‘,’ or ‘;’ before ‘::’ token 

The offending C++ code is:

     DNSSD::RemoteService *cpp = (DNSSD::RemoteService 
*)sipForceConvertTo_DNSSD::RemoteService (sipPy, &iserr);

which was expanded from the mapped type:

template <TYPE>
%MappedType KSharedPtr<TYPE>
// ... etc etc ...

     // Convert a Python instance to a Ptr on the heap.

     if (sipIsErr == NULL)
         return PyInstance_Check(sipPy);

     int iserr = 0;
     TYPE *cpp = (TYPE *)sipForceConvertTo_TYPE (sipPy, &iserr);
// ... etc etc ...

elsewhere in the sip files I've got this which sets it all in motion:

     typedef KSharedPtr<DNSSD::RemoteService> Ptr;


Simon Edwards             | KDE-NL, Guidance tools, Guarddog Firewall
simon at simonzone.com       | http://www.simonzone.com/software/
Nijmegen, The Netherlands | "ZooTV? You made the right choice."

More information about the PyQt mailing list