Re: [PyQt] sip bug wrapping protected enum in ABC
On Tue, 22 Mar 2011 02:42:37 +, Demetrius Cassidy dcassid...@gmail.com wrote: With a simple class definition like the following, it seems that SIP tries to wrap SIPTransaction::States using a sip generated class, but of course that class is not created for ABCs. I am using the latest SIP snapshot, SIP 4.12.2-snapshot-ecb3e795382e, to test this code. class SIPTransaction /Abstract/ { public: ~SIPTransaction(); virtual SIPTransaction * CreateDuplicate() const = 0; protected: enum States { NotStarted, Trying, Proceeding, Cancelling, Completed, Terminated_Success, Terminated_Timeout, Terminated_RetriesExceeded, Terminated_TransportError, Terminated_Cancelled, Terminated_Aborted, NumStates }; virtual void SetTerminated(States newState); }; Offending generated code: static sipEnumMemberDef enummembers_SIPTransaction[] = { {sipName_Cancelling, sipSIPTransaction::Cancelling, 241}, {sipName_Completed, sipSIPTransaction::Completed, 241}, {sipName_NotStarted, sipSIPTransaction::NotStarted, 241}, {sipName_NumStates, sipSIPTransaction::NumStates, 241}, {sipName_Proceeding, sipSIPTransaction::Proceeding, 241}, {sipName_Terminated_Aborted, sipSIPTransaction::Terminated_Aborted, 241}, {sipName_Terminated_Cancelled, sipSIPTransaction::Terminated_Cancelled, 241}, {sipName_Terminated_RetriesExceeded, sipSIPTransaction::Terminated_RetriesExceeded, 241}, {sipName_Terminated_Success, sipSIPTransaction::Terminated_Success, 241}, {sipName_Terminated_Timeout, sipSIPTransaction::Terminated_Timeout, 241}, {sipName_Terminated_TransportError, sipSIPTransaction::Terminated_TransportError, 241}, {sipName_Trying, sipSIPTransaction::Trying, 241}, }; Of course, commenting out the code under protected stops it from being generated, and causing compiler errors. Fixed, thanks. Phil ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[PyQt] sip bug wrapping protected enum in ABC
With a simple class definition like the following, it seems that SIP tries to wrap SIPTransaction::States using a sip generated class, but of course that class is not created for ABCs. I am using the latest SIP snapshot, SIP 4.12.2-snapshot-ecb3e795382e, to test this code. class SIPTransaction /Abstract/ { public: ~SIPTransaction(); virtual SIPTransaction * CreateDuplicate() const = 0; protected: enum States { NotStarted, Trying, Proceeding, Cancelling, Completed, Terminated_Success, Terminated_Timeout, Terminated_RetriesExceeded, Terminated_TransportError, Terminated_Cancelled, Terminated_Aborted, NumStates }; virtual void SetTerminated(States newState); }; Offending generated code: static sipEnumMemberDef enummembers_SIPTransaction[] = { {sipName_Cancelling, sipSIPTransaction::Cancelling, 241}, {sipName_Completed, sipSIPTransaction::Completed, 241}, {sipName_NotStarted, sipSIPTransaction::NotStarted, 241}, {sipName_NumStates, sipSIPTransaction::NumStates, 241}, {sipName_Proceeding, sipSIPTransaction::Proceeding, 241}, {sipName_Terminated_Aborted, sipSIPTransaction::Terminated_Aborted, 241}, {sipName_Terminated_Cancelled, sipSIPTransaction::Terminated_Cancelled, 241}, {sipName_Terminated_RetriesExceeded, sipSIPTransaction::Terminated_RetriesExceeded, 241}, {sipName_Terminated_Success, sipSIPTransaction::Terminated_Success, 241}, {sipName_Terminated_Timeout, sipSIPTransaction::Terminated_Timeout, 241}, {sipName_Terminated_TransportError, sipSIPTransaction::Terminated_TransportError, 241}, {sipName_Trying, sipSIPTransaction::Trying, 241}, }; Of course, commenting out the code under protected stops it from being generated, and causing compiler errors. ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt