diff options
Diffstat (limited to 'cppu/source/typelib/static_types.cxx')
-rw-r--r-- | cppu/source/typelib/static_types.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cppu/source/typelib/static_types.cxx b/cppu/source/typelib/static_types.cxx index 6bbdf4c63eab..77f443a6a637 100644 --- a/cppu/source/typelib/static_types.cxx +++ b/cppu/source/typelib/static_types.cxx @@ -182,8 +182,9 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass( &pTD, sTypeName.pData, 0, 0, 0, 0, 0, nullptr, 3, pMembers ); ::typelib_typedescription_register( reinterpret_cast<typelib_TypeDescription **>(&pTD) ); + s_aTypes[typelib_TypeClass_INTERFACE] = pTD->aBase.pWeakRef; ::typelib_typedescriptionreference_acquire( - s_aTypes[typelib_TypeClass_INTERFACE] = pTD->aBase.pWeakRef ); + s_aTypes[typelib_TypeClass_INTERFACE] ); // another static ref: ++s_aTypes[typelib_TypeClass_INTERFACE]->nStaticRefCount; ::typelib_typedescription_release( &pTD->aBase ); @@ -212,8 +213,9 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass( ::typelib_typedescription_new( &pTD1, typelib_TypeClass_EXCEPTION, sTypeName1.pData, nullptr, 2, aMembers ); typelib_typedescription_register( &pTD1 ); + s_aTypes[typelib_TypeClass_EXCEPTION] = pTD1->pWeakRef; typelib_typedescriptionreference_acquire( - s_aTypes[typelib_TypeClass_EXCEPTION] = pTD1->pWeakRef ); + s_aTypes[typelib_TypeClass_EXCEPTION]); // another static ref: ++s_aTypes[typelib_TypeClass_EXCEPTION]->nStaticRefCount; // RuntimeException @@ -369,8 +371,9 @@ void init( } for ( sal_Int32 i = 0 ; i < nMembers; ++i ) { + pComp->ppTypeRefs[i] = ppMembers[i]; ::typelib_typedescriptionreference_acquire( - pComp->ppTypeRefs[i] = ppMembers[i] ); + pComp->ppTypeRefs[i] ); // write offset typelib_TypeDescription * pTD = nullptr; TYPELIB_DANGER_GET( &pTD, pComp->ppTypeRefs[i] ); |