494 */ |
494 */ |
495 template <class TSIGNATURE, TInt PAYLOADATTRIBOFFSET, class TATTRIBUTECREATIONPOLICY, TInt PAYLOADBUFFERMAXLEN = TSignalBase::KMaxInlineMessageSize> |
495 template <class TSIGNATURE, TInt PAYLOADATTRIBOFFSET, class TATTRIBUTECREATIONPOLICY, TInt PAYLOADBUFFERMAXLEN = TSignalBase::KMaxInlineMessageSize> |
496 class TSignatureWithPolymorphicPayloadMetaType : public TSignatureWithPolymorphicPayloadMetaTypeBase |
496 class TSignatureWithPolymorphicPayloadMetaType : public TSignatureWithPolymorphicPayloadMetaTypeBase |
497 { |
497 { |
498 public: |
498 public: |
|
499 |
|
500 __ASSERT_COMPILE(PAYLOADATTRIBOFFSET == __Align8(PAYLOADATTRIBOFFSET)); //Declared here to be able to build with GCCE |
|
501 |
499 inline static MMetaType* NewL(const TAny* aMem, const TAny* aData) |
502 inline static MMetaType* NewL(const TAny* aMem, const TAny* aData) |
500 { |
503 { |
501 // For some reason this assertion does not compile under x86gcc which complains |
504 // For some reason this assertion does not compile under x86gcc which complains |
502 // that a default template argument has been specified for a templated member |
505 // that a default template argument has been specified for a templated member |
503 // function. There is no such function so this is probably a parser bug. |
506 // function. There is no such function so this is probably a parser bug. |
504 #if !defined(__GCCXML__) && !defined(__X86GCC__) |
507 //#if !defined(__GCCXML__) && !defined(__X86GCC__) |
505 __ASSERT_COMPILE(PAYLOADATTRIBOFFSET == __Align8(PAYLOADATTRIBOFFSET)); //must be alligned! |
508 // __ASSERT_COMPILE(PAYLOADATTRIBOFFSET == __Align8(PAYLOADATTRIBOFFSET)); //must be alligned! |
506 #endif |
509 //#endif |
507 return ::new ((TUint8*)aMem) TSignatureWithPolymorphicPayloadMetaType(aData); |
510 return ::new ((TUint8*)aMem) TSignatureWithPolymorphicPayloadMetaType(aData); |
508 } |
511 } |
509 |
512 |
510 inline virtual TInt Load(TPtrC8& aBuffer) |
513 inline virtual TInt Load(TPtrC8& aBuffer) |
511 { |
514 { |