[PyQt] Perhaps a bug with virtual methods?

Andrew Perella ajp at eutechnyx.com
Wed May 14 17:23:47 BST 2008


Suppose I have the following sip definitions:

 

class A

{

public:

 virtual void Enter();

};

class B:A

{

public:

            

};

class C: B

{

public:

            

};

 

 

The generated code produces an "Enter()" method of the sip wrapped C class
where if the method is not passed onto python it calls the baseclass
A:Enter() rather than B:Enter()

 

void sipC::Enter()

{

    typedef void (*sipVH_Game_2)(sip_gilstate_t,PyObject *);

 

    sip_gilstate_t sipGILState;

    PyObject *meth;

 

    meth =
sipIsPyMethod(&sipGILState,&sipPyMethods[0],sipPySelf,NULL,sipNm_States_Ente
r);

 

    if (!meth)

    {

        A::Enter();

        return;

    }

 

 
((sipVH_Game_2)(sipModuleAPI_States_Game->em_virthandlers[2]))(sipGILState,m
eth);

}

 

This seems like a big problem. Have I missed something?

 

Cheers,

Andrew

 


This e-mail is confidential and may be privileged. It may be read, copied and used only by the intended recipient. No communication sent by e-mail to or from Eutechnyx is intended to give rise to contractual or other legal liability, apart from liability which cannot be excluded under English law. 

This email has been scanned for all known viruses by the Email Protection Agency.


www.eutechnyx.com Eutechnyx Limited. Registered in England No: 2172322

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20080514/d6fdee39/attachment-0001.html


More information about the PyQt mailing list