diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2020-03-04 21:14:22 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2020-03-06 10:18:58 +0100 |
commit | af1a1587247d9aedba32ff48163f848ab9ab3ab5 (patch) | |
tree | 2b36ddb93e8577357f6148cec73d0850422e104f /cppu | |
parent | 5e518d660863448924f6bb6d2a4f57d9d856c624 (diff) |
Make TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK constexpr
...and make dynamic verifications static where applicable
Change-Id: I3fb7ebe6885ee70e493ec1365601a1177d181347
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90002
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'cppu')
-rw-r--r-- | cppu/source/typelib/static_types.cxx | 6 | ||||
-rw-r--r-- | cppu/source/typelib/typelib.cxx | 15 |
2 files changed, 10 insertions, 11 deletions
diff --git a/cppu/source/typelib/static_types.cxx b/cppu/source/typelib/static_types.cxx index 622b52e2d020..6bbdf4c63eab 100644 --- a/cppu/source/typelib/static_types.cxx +++ b/cppu/source/typelib/static_types.cxx @@ -302,7 +302,7 @@ void SAL_CALL typelib_static_sequence_type_init( { OUString aTypeName = "[]" + OUString::unacquired(&pElementType->pTypeName); - assert( ! TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_SEQUENCE) ); + static_assert( ! TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_SEQUENCE) ); *ppRef = igetTypeByName( aTypeName.pData ); if (!*ppRef) { @@ -451,7 +451,7 @@ void SAL_CALL typelib_static_mi_interface_type_init( MutexGuard aGuard( typelib_StaticInitMutex::get() ); if (! *ppRef) { - assert( ! TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_INTERFACE) ); + static_assert( ! TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_INTERFACE) ); OUString aTypeName( OUString::createFromAscii( pTypeName ) ); *ppRef = igetTypeByName( aTypeName.pData ); if (!*ppRef) @@ -514,7 +514,7 @@ void SAL_CALL typelib_static_enum_type_init( MutexGuard aGuard( typelib_StaticInitMutex::get() ); if (! *ppRef) { - assert( ! TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_ENUM) ); + static_assert( ! TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_ENUM) ); OUString aTypeName( OUString::createFromAscii( pTypeName ) ); *ppRef = igetTypeByName( aTypeName.pData ); if (!*ppRef) diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx index d4a65a6f7b5e..1f7af60693e2 100644 --- a/cppu/source/typelib/typelib.cxx +++ b/cppu/source/typelib/typelib.cxx @@ -848,6 +848,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEnum( pEnum->pEnumValues = new sal_Int32[ nEnumValues ]; ::memcpy( pEnum->pEnumValues, pEnumValues, nEnumValues * sizeof(sal_Int32) ); + static_assert(!TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK(typelib_TypeClass_ENUM)); (*ppRet)->pWeakRef = reinterpret_cast<typelib_TypeDescriptionReference *>(*ppRet); // sizeof(void) not allowed (*ppRet)->nSize = typelib_typedescription_getAlignedUnoSize( (*ppRet), 0, (*ppRet)->nAlignment ); @@ -1041,8 +1042,8 @@ extern "C" void SAL_CALL typelib_typedescription_newMIInterface( } typelib_TypeDescription * pTmp = &pITD->aBase; - if( !TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( typelib_TypeClass_INTERFACE ) ) - pTmp->pWeakRef = reinterpret_cast<typelib_TypeDescriptionReference *>(pTmp); + static_assert( !TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( typelib_TypeClass_INTERFACE ) ); + pTmp->pWeakRef = reinterpret_cast<typelib_TypeDescriptionReference *>(pTmp); pTmp->nSize = typelib_typedescription_getAlignedUnoSize( pTmp, 0, pTmp->nAlignment ); pTmp->nAlignment = adjustAlignment( pTmp->nAlignment ); pTmp->bComplete = false; @@ -1111,7 +1112,6 @@ extern "C" void SAL_CALL typelib_typedescription_newInterfaceMethod( typelib_typedescription_newEmpty( reinterpret_cast<typelib_TypeDescription **>(ppRet), typelib_TypeClass_INTERFACE_METHOD, pTypeName ); - typelib_TypeDescription * pTmp = reinterpret_cast<typelib_TypeDescription *>(*ppRet); rtl_uString_newFromStr_WithLength( &(*ppRet)->aBase.pMemberName, pTypeName->buffer + nOffset +1, @@ -1146,8 +1146,8 @@ extern "C" void SAL_CALL typelib_typedescription_newInterfaceMethod( && nAbsolutePosition < pInterface->nAllMembers); (*ppRet)->nIndex = nAbsolutePosition - (pInterface->nAllMembers - pInterface->nMembers); - if( !TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( typelib_TypeClass_INTERFACE_METHOD ) ) - pTmp->pWeakRef = reinterpret_cast<typelib_TypeDescriptionReference *>(pTmp); + static_assert( TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( typelib_TypeClass_INTERFACE_METHOD ) ); + assert(reinterpret_cast<typelib_TypeDescription *>(*ppRet)->pWeakRef == nullptr); } @@ -1203,7 +1203,6 @@ extern "C" void SAL_CALL typelib_typedescription_newExtendedInterfaceAttribute( typelib_typedescription_newEmpty( reinterpret_cast<typelib_TypeDescription **>(ppRet), typelib_TypeClass_INTERFACE_ATTRIBUTE, pTypeName ); - typelib_TypeDescription * pTmp = reinterpret_cast<typelib_TypeDescription *>(*ppRet); rtl_uString_newFromStr_WithLength( &(*ppRet)->aBase.pMemberName, pTypeName->buffer + nOffset +1, @@ -1224,8 +1223,8 @@ extern "C" void SAL_CALL typelib_typedescription_newExtendedInterfaceAttribute( (*ppRet)->nSetExceptions = nSetExceptions; (*ppRet)->ppSetExceptions = copyExceptions( nSetExceptions, ppSetExceptionNames); - if( !TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( typelib_TypeClass_INTERFACE_ATTRIBUTE ) ) - pTmp->pWeakRef = reinterpret_cast<typelib_TypeDescriptionReference *>(pTmp); + static_assert( TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( typelib_TypeClass_INTERFACE_ATTRIBUTE ) ); + assert(reinterpret_cast<typelib_TypeDescription *>(*ppRet)->pWeakRef == nullptr); } |