[PyQt] ANN: SIP v4.15.1 Released
Phil Thompson
phil at riverbankcomputing.com
Wed Nov 20 08:27:45 GMT 2013
On Wed, 20 Nov 2013 00:17:20 +0100, Hans-Peter Jansen <hpj at urpla.net>
wrote:
> On Dienstag, 19. November 2013 15:34:11 Phil Thompson wrote:
>> On Tue, 19 Nov 2013 15:52:01 +0100, Hans-Peter Jansen <hpj at urpla.net>
>>
>> wrote:
>> > Dear Phil,
>> >
>> > On Samstag, 24. August 2013 22:30:16 Hans-Peter Jansen wrote:
>> >> On Freitag, 23. August 2013 18:44:38 Phil Thompson wrote:
>> >> > SIP v4.15.1 has been released. This fixes a regression in v4.15
>> >> > related to
>> >> > the handling of hidden virtual methods. PyQt is unaffected.
>> >>
>> >> Well, but PyQt3 is:
>
> [...]
>
>>
>> It's probably missing reimplementations in the .sip files.
>
> Okay, I got around this one, only to be fenced with next issue:
>
> [ 82s] g++ -c -pipe -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
> -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
> -DUSE_LIB64_PATHES -fno-strict-aliasing -fPIC -fmessage-length=0 -O2
-Wall
> -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables
> -fasynchronous-unwind-tables -g -DUSE_LIB64_PATHES -fno-strict-aliasing
> -Wall -W -D_REENTRANT -DNDEBUG -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I.
> -I/usr/include/ -I/usr/include/python2.7 -I/usr/lib/qt3/mkspecs/default
> -I/usr/lib/qt3/include -I/usr/X11R6/include -o sipqtnetworkQFtp.o
> sipqtnetworkQFtp.cpp
>
> resulting in
>
> [ 83s] In file included from sip/qtnetwork/qftp.sip:45:0:
> [ 83s] /usr/lib/qt3/include/qftp.h: In member function 'virtual bool
> sipQFtp::checkConnection(QNetworkOperation*)':
> [ 83s] /usr/lib/qt3/include/qftp.h:171:10: error: 'virtual bool
> QFtp::checkConnection(QNetworkOperation*)' is private
> [ 83s] qtnetwork/sipqtnetworkQFtp.cpp:386:40: error: within this
context
>
> Hmm.
>
> checkConnection is defined in sip/qt/qnetworkprotocol.sip as a protected
> method of QNetworkProtocol class:
>
> virtual bool checkConnection(QNetworkOperation *);
>
>
> Obviously sip is being aware of this matter, as it handles it in a
special
> way.
> It creates in qtnetwork/sipqtnetworkQFtp.cpp:
>
> bool sipProtectVirt_checkConnection(bool,QNetworkOperation *);
>
>
> bool sipQFtp::sipProtectVirt_checkConnection(bool
> sipSelfWasArg,QNetworkOperation *a0)
> {
> return (sipSelfWasArg ? QNetworkProtocol::checkConnection(a0) :
> checkConnection(a0));
> }
>
>
> But the question is, why does the compiler complain on this method:
>
> bool sipQFtp::checkConnection(QNetworkOperation *a0)
> {
> sip_gilstate_t sipGILState;
> PyObject *sipMeth;
>
> sipMeth =
>
sipIsPyMethod(&sipGILState,&sipPyMethods[10],sipPySelf,NULL,sipName_checkConnection);
>
> if (!sipMeth)
> ==> return QFtp::checkConnection(a0);
>
> typedef bool (*sipVH_qt_180)(sip_gilstate_t,
sipVirtErrorHandlerFunc,
> sipSimpleWrapper *, PyObject *, QNetworkOperation *);
>
> return
>
((sipVH_qt_180)(sipModuleAPI_qtnetwork_qt->em_virthandlers[180]))(sipGILState,
> 0, sipPySelf, sipMeth, a0);
> }
>
>
> and even more interesting, what could be done to avoid this issue?
>
> I'm lost again.
>
> Another idea would be GREAT.
Again, probably a missing (private this time) reimplementation.
Phil
More information about the PyQt
mailing list