You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by hd...@apache.org on 2013/03/12 14:52:08 UTC

svn commit: r1455530 - /openoffice/trunk/main/cppu/inc/typelib/typedescription.h

Author: hdu
Date: Tue Mar 12 13:52:08 2013
New Revision: 1455530

URL: http://svn.apache.org/r1455530
Log:
use debuggable and type-safe inline methods to replace macros in typedescription.h

Modified:
    openoffice/trunk/main/cppu/inc/typelib/typedescription.h

Modified: openoffice/trunk/main/cppu/inc/typelib/typedescription.h
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cppu/inc/typelib/typedescription.h?rev=1455530&r1=1455529&r2=1455530&view=diff
==============================================================================
--- openoffice/trunk/main/cppu/inc/typelib/typedescription.h (original)
+++ openoffice/trunk/main/cppu/inc/typelib/typedescription.h Tue Mar 12 13:52:08 2013
@@ -875,42 +875,47 @@ void SAL_CALL typelib_typedescription_re
     description is not initialized.
     @internal
 */
-#define TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( eTypeClass )	\
-	((eTypeClass) == typelib_TypeClass_INTERFACE_METHOD || \
-	 (eTypeClass) == typelib_TypeClass_INTERFACE_ATTRIBUTE)
+inline bool TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( _typelib_TypeClass eTypeClass )
+{
+	return (eTypeClass == typelib_TypeClass_INTERFACE_METHOD) ||
+	 (eTypeClass == typelib_TypeClass_INTERFACE_ATTRIBUTE);
+}
 
 /** Gets a description from the reference. The description may not be locked by this call.
     You must use the TYPELIB_DANGER_RELEASE macro to release the description fetched with
     this macro.
     @internal
 */
-#define TYPELIB_DANGER_GET( ppDescription, pTypeRef ) \
-{ \
-	typelib_TypeDescriptionReference * pMacroTypeRef = (pTypeRef); \
-	typelib_TypeDescription ** ppMacroTypeDescr = (ppDescription); \
-	if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( pMacroTypeRef->eTypeClass )) \
-	{ \
-		typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \
-	} \
-	else if (!pMacroTypeRef->pType || !pMacroTypeRef->pType->pWeakRef) \
-	{ \
-		typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \
-        if (*ppMacroTypeDescr) \
-            typelib_typedescription_release( *ppMacroTypeDescr ); \
-	} \
-	else \
-	{ \
-		*ppMacroTypeDescr = pMacroTypeRef->pType; \
-	} \
+inline void TYPELIB_DANGER_GET( typelib_TypeDescription** ppMacroTypeDescr,
+	typelib_TypeDescriptionReference* pMacroTypeRef )
+{
+	void SAL_CALL typelib_typedescriptionreference_getDescription(typelib_TypeDescription**, typelib_TypeDescriptionReference*) SAL_THROW_EXTERN_C();
+
+	if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( pMacroTypeRef->eTypeClass ))
+	{
+		typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef );
+	}
+	else if (!pMacroTypeRef->pType || !pMacroTypeRef->pType->pWeakRef)
+	{
+		typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef );
+        if (*ppMacroTypeDescr)
+		typelib_typedescription_release( *ppMacroTypeDescr );
+	}
+	else
+	{
+		*ppMacroTypeDescr = pMacroTypeRef->pType;
+	}
 }
 
 /** Releases the description previouse fetched by TYPELIB_DANGER_GET.
     @internal
 */
-#define TYPELIB_DANGER_RELEASE( pDescription ) \
-{ \
-	if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( (pDescription)->eTypeClass )) \
-		typelib_typedescription_release( pDescription ); \
+inline void TYPELIB_DANGER_RELEASE( typelib_TypeDescription* pDescription )
+{
+	void SAL_CALL typelib_typedescription_release(typelib_TypeDescription*)	SAL_THROW_EXTERN_C();
+
+	if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( pDescription->eTypeClass ))
+		typelib_typedescription_release( pDescription );
 }
 
 /** Creates a type description reference. This is a weak reference not holding the description.