[Libreoffice-commits] core.git: 3 commits - include/com include/cppuhelper include/rtl include/unotools include/vcl solenv/gbuild
Stephan Bergmann
sbergman at redhat.com
Wed Aug 14 04:32:05 PDT 2013
include/com/sun/star/uno/Any.h | 4 -
include/com/sun/star/uno/Any.hxx | 78 ++++++++++++++++++++++++++-
include/com/sun/star/uno/Reference.h | 10 ---
include/com/sun/star/uno/Reference.hxx | 15 -----
include/com/sun/star/uno/Sequence.h | 3 -
include/com/sun/star/uno/Sequence.hxx | 16 -----
include/com/sun/star/uno/genfunc.hxx | 4 -
include/cppuhelper/interfacecontainer.h | 4 -
include/rtl/byteseq.hxx | 13 ----
include/rtl/string.hxx | 9 ---
include/rtl/ustring.hxx | 23 -------
include/unotools/sharedunocomponent.hxx | 6 --
include/vcl/threadex.hxx | 12 ----
solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk | 2
solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk | 2
solenv/gbuild/platform/com_GCC_defs.mk | 4 -
solenv/gbuild/platform/com_MSC_defs.mk | 3 -
17 files changed, 78 insertions(+), 130 deletions(-)
New commits:
commit c38592527adfc526133c3ac36b10aa77234313ee
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Wed Aug 14 11:45:30 2013 +0200
EXCEPTIONS_OFF is never defined
...since gb_LinkTarget_NOEXCEPTIONFLAGS became unused with
e81b1f23c49e35c1cde1faa44281812e97be60f5 "remove
gb_LinkTarget_add_noexception_object."
Change-Id: I4a7275b5b26a9d4b6ded66efb52e6866e6e09cc3
diff --git a/include/com/sun/star/uno/Any.h b/include/com/sun/star/uno/Any.h
index b4ead89..7be6017 100644
--- a/include/com/sun/star/uno/Any.h
+++ b/include/com/sun/star/uno/Any.h
@@ -157,7 +157,6 @@ public:
inline const void * SAL_CALL getValue() const SAL_THROW(())
{ return pData; }
-#if ! defined(EXCEPTIONS_OFF)
/** Provides a value of specified type, so you can easily write e.g.
<pre>
sal_Int32 myVal = myAny.get<sal_Int32>();
@@ -172,7 +171,6 @@ public:
*/
template <typename T>
inline T get() const;
-#endif // ! defined(EXCEPTIONS_OFF)
/** Sets a value. If the any already contains a value, that value will be destructed
and its memory freed.
@@ -240,10 +238,8 @@ private:
// Omitting the following private declarations leads to an internal compiler
// error on MSVC (version 1310).
// not impl: forbid use with ambiguous type (sal_Unicode, sal_uInt16)
-#if ! defined(EXCEPTIONS_OFF)
template <>
sal_uInt16 get<sal_uInt16>() const;
-#endif // ! defined(EXCEPTIONS_OFF)
template <>
bool has<sal_uInt16>() const;
#endif // defined(_MSC_VER)
diff --git a/include/com/sun/star/uno/Any.hxx b/include/com/sun/star/uno/Any.hxx
index a643a6f..04115a5 100644
--- a/include/com/sun/star/uno/Any.hxx
+++ b/include/com/sun/star/uno/Any.hxx
@@ -567,7 +567,6 @@ inline sal_Bool SAL_CALL operator != ( const Any & rAny, const C & value ) SAL_T
return (! operator == ( rAny, value ));
}
-#if ! defined(EXCEPTIONS_OFF)
extern "C" rtl_uString * SAL_CALL cppu_Any_extraction_failure_msg(
uno_Any const * pAny, typelib_TypeDescriptionReference * pType )
SAL_THROW_EXTERN_C();
@@ -591,7 +590,6 @@ T Any::get() const
// not impl: forbid use with ambiguous type (sal_Unicode, sal_uInt16)
template <>
sal_uInt16 Any::get<sal_uInt16>() const;
-#endif // ! defined(EXCEPTIONS_OFF)
/**
Support for Any in std::ostream (and thus in CPPUNIT_ASSERT or SAL_INFO
diff --git a/include/com/sun/star/uno/Reference.h b/include/com/sun/star/uno/Reference.h
index 27787d3..73a8608 100644
--- a/include/com/sun/star/uno/Reference.h
+++ b/include/com/sun/star/uno/Reference.h
@@ -66,7 +66,6 @@ protected:
*/
inline static XInterface * SAL_CALL iquery( XInterface * pInterface, const Type & rType )
SAL_THROW( (RuntimeException) );
-#ifndef EXCEPTIONS_OFF
/** Queries given interface for type rType.
Throws a RuntimeException if the demanded interface cannot be queried.
@@ -76,7 +75,6 @@ protected:
*/
inline static XInterface * SAL_CALL iquery_throw( XInterface * pInterface, const Type & rType )
SAL_THROW( (RuntimeException) );
-#endif
public:
/** Gets interface pointer. This call does not acquire the interface.
@@ -139,7 +137,6 @@ enum UnoReference_Query
*/
UNO_QUERY,
};
-#ifndef EXCEPTIONS_OFF
/** Enum defining UNO_QUERY_THROW for implicit interface query.
If the demanded interface is unavailable, then a RuntimeException is thrown.
*/
@@ -158,7 +155,6 @@ enum UnoReference_SetThrow
{
UNO_SET_THROW
};
-#endif
/// @cond INTERNAL
namespace detail {
@@ -225,7 +221,6 @@ class Reference : public BaseReference
*/
inline static XInterface * SAL_CALL iquery( XInterface * pInterface )
SAL_THROW( (RuntimeException) );
-#ifndef EXCEPTIONS_OFF
/** Queries given interface for type interface_type.
Throws a RuntimeException if the demanded interface cannot be queried.
@@ -241,7 +236,6 @@ class Reference : public BaseReference
*/
inline static interface_type * SAL_CALL iset_throw( interface_type * pInterface )
SAL_THROW( (RuntimeException) );
-#endif
/** Cast from an "interface pointer" (e.g., BaseReference::_pInterface) to a
pointer to this interface_type.
@@ -353,7 +347,6 @@ public:
@param dummy UNO_QUERY to force obvious distinction to other constructors
*/
inline Reference( const Any & rAny, UnoReference_Query dummy) SAL_THROW( (RuntimeException) );
-#ifndef EXCEPTIONS_OFF
/** Constructor: Queries given interface for reference interface type (interface_type).
Throws a RuntimeException if the demanded interface cannot be queried.
@@ -396,7 +389,6 @@ public:
@since UDK 3.2.8
*/
inline Reference( interface_type * pInterface, UnoReference_SetThrow dummy ) SAL_THROW( (RuntimeException) );
-#endif
/** Cast operator to Reference< XInterface >: Reference objects are binary compatible and
any interface must be derived from com.sun.star.uno.XInterface.
@@ -483,7 +475,6 @@ public:
*/
inline bool set( Any const & rAny, UnoReference_Query dummy );
-#ifndef EXCEPTIONS_OFF
/** Queries given interface for reference interface type (interface_type) and sets it.
An interface already set will be released.
Throws a RuntimeException if the demanded interface cannot be set.
@@ -534,7 +525,6 @@ public:
*/
inline void SAL_CALL set( const Reference< interface_type > & rRef, UnoReference_SetThrow dummy) SAL_THROW( (RuntimeException) );
-#endif
/** Assignment operator: Acquires given interface pointer and sets reference.
An interface already set will be released.
diff --git a/include/com/sun/star/uno/Reference.hxx b/include/com/sun/star/uno/Reference.hxx
index 419439e..a358c97 100644
--- a/include/com/sun/star/uno/Reference.hxx
+++ b/include/com/sun/star/uno/Reference.hxx
@@ -57,7 +57,6 @@ inline XInterface * Reference< interface_type >::iquery(
{
return BaseReference::iquery(pInterface, interface_type::static_type());
}
-#ifndef EXCEPTIONS_OFF
extern "C" rtl_uString * SAL_CALL cppu_unsatisfied_iquery_msg(
typelib_TypeDescriptionReference * pType )
SAL_THROW_EXTERN_C();
@@ -98,7 +97,6 @@ inline interface_type * Reference< interface_type >::iset_throw(
::rtl::OUString( cppu_unsatisfied_iset_msg( interface_type::static_type().getTypeLibType() ), SAL_NO_ACQUIRE ),
NULL );
}
-#endif
//__________________________________________________________________________________________________
template< class interface_type >
@@ -172,7 +170,6 @@ inline Reference< interface_type >::Reference( const Any & rAny, UnoReference_Qu
_pInterface = (typelib_TypeClass_INTERFACE == rAny.pType->eTypeClass
? iquery( static_cast< XInterface * >( rAny.pReserved ) ) : 0);
}
-#ifndef EXCEPTIONS_OFF
//__________________________________________________________________________________________________
template< class interface_type >
inline Reference< interface_type >::Reference( const BaseReference & rRef, UnoReference_QueryThrow ) SAL_THROW( (RuntimeException) )
@@ -204,7 +201,6 @@ inline Reference< interface_type >::Reference( interface_type * pInterface, UnoR
{
_pInterface = castToXInterface( iset_throw( pInterface ) );
}
-#endif
//__________________________________________________________________________________________________
template< class interface_type >
@@ -284,7 +280,6 @@ inline bool Reference< interface_type >::set(
SAL_NO_ACQUIRE );
}
-#ifndef EXCEPTIONS_OFF
//__________________________________________________________________________________________________
template< class interface_type >
inline void Reference< interface_type >::set(
@@ -326,8 +321,6 @@ inline void Reference< interface_type >::set(
set( rRef.get(), UNO_SET_THROW );
}
-#endif
-
//__________________________________________________________________________________________________
template< class interface_type >
inline Reference< interface_type > & Reference< interface_type >::operator = (
@@ -369,21 +362,17 @@ inline sal_Bool BaseReference::operator == ( XInterface * pInterface ) const SAL
{
if (_pInterface == pInterface)
return sal_True;
-#ifndef EXCEPTIONS_OFF
try
{
-#endif
// only the query to XInterface must return the same pointer if they belong to same objects
Reference< XInterface > x1( _pInterface, UNO_QUERY );
Reference< XInterface > x2( pInterface, UNO_QUERY );
return (x1._pInterface == x2._pInterface);
-#ifndef EXCEPTIONS_OFF
}
catch (RuntimeException &)
{
return sal_False;
}
-#endif
}
//______________________________________________________________________________
@@ -392,21 +381,17 @@ inline sal_Bool BaseReference::operator < (
{
if (_pInterface == rRef._pInterface)
return sal_False;
-#if ! defined EXCEPTIONS_OFF
try
{
-#endif
// only the query to XInterface must return the same pointer:
Reference< XInterface > x1( _pInterface, UNO_QUERY );
Reference< XInterface > x2( rRef, UNO_QUERY );
return (x1._pInterface < x2._pInterface);
-#if ! defined EXCEPTIONS_OFF
}
catch (RuntimeException &)
{
return sal_False;
}
-#endif
}
//__________________________________________________________________________________________________
diff --git a/include/com/sun/star/uno/Sequence.h b/include/com/sun/star/uno/Sequence.h
index ed754cf..1e6d2b0 100644
--- a/include/com/sun/star/uno/Sequence.h
+++ b/include/com/sun/star/uno/Sequence.h
@@ -24,10 +24,7 @@
#include "com/sun/star/uno/Type.h"
#include "rtl/alloc.h"
-#if ! defined EXCEPTIONS_OFF
#include <new>
-#endif
-
namespace rtl
{
diff --git a/include/com/sun/star/uno/Sequence.hxx b/include/com/sun/star/uno/Sequence.hxx
index a23fd3b..9ce88d3 100644
--- a/include/com/sun/star/uno/Sequence.hxx
+++ b/include/com/sun/star/uno/Sequence.hxx
@@ -76,16 +76,12 @@ template< class E >
inline Sequence< E >::Sequence( const E * pElements, sal_Int32 len )
{
const Type & rType = ::cppu::getTypeFavourUnsigned( this );
-#if ! defined EXCEPTIONS_OFF
sal_Bool success =
-#endif
::uno_type_sequence_construct(
&_pSequence, rType.getTypeLibType(),
const_cast< E * >( pElements ), len, (uno_AcquireFunc)cpp_acquire );
-#if ! defined EXCEPTIONS_OFF
if (! success)
throw ::std::bad_alloc();
-#endif
}
//______________________________________________________________________________
@@ -93,16 +89,12 @@ template< class E >
inline Sequence< E >::Sequence( sal_Int32 len )
{
const Type & rType = ::cppu::getTypeFavourUnsigned( this );
-#if ! defined EXCEPTIONS_OFF
sal_Bool success =
-#endif
::uno_type_sequence_construct(
&_pSequence, rType.getTypeLibType(),
0, len, (uno_AcquireFunc)cpp_acquire );
-#if ! defined EXCEPTIONS_OFF
if (! success)
throw ::std::bad_alloc();
-#endif
}
//______________________________________________________________________________
@@ -152,16 +144,12 @@ template< class E >
inline E * Sequence< E >::getArray()
{
const Type & rType = ::cppu::getTypeFavourUnsigned( this );
-#if ! defined EXCEPTIONS_OFF
sal_Bool success =
-#endif
::uno_type_sequence_reference2One(
&_pSequence, rType.getTypeLibType(),
(uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release );
-#if ! defined EXCEPTIONS_OFF
if (! success)
throw ::std::bad_alloc();
-#endif
return reinterpret_cast< E * >( _pSequence->elements );
}
@@ -187,16 +175,12 @@ template< class E >
inline void Sequence< E >::realloc( sal_Int32 nSize )
{
const Type & rType = ::cppu::getTypeFavourUnsigned( this );
-#if !defined EXCEPTIONS_OFF
sal_Bool success =
-#endif
::uno_type_sequence_realloc(
&_pSequence, rType.getTypeLibType(), nSize,
(uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release );
-#if !defined EXCEPTIONS_OFF
if (!success)
throw ::std::bad_alloc();
-#endif
}
//------------------------------------------------------------------------------
diff --git a/include/com/sun/star/uno/genfunc.hxx b/include/com/sun/star/uno/genfunc.hxx
index d523123..179f676 100644
--- a/include/com/sun/star/uno/genfunc.hxx
+++ b/include/com/sun/star/uno/genfunc.hxx
@@ -50,10 +50,8 @@ inline void * SAL_CALL cpp_queryInterface( void * pCppI, typelib_TypeDescription
{
if (pCppI)
{
-#ifndef EXCEPTIONS_OFF
try
{
-#endif
Any aRet( reinterpret_cast< XInterface * >( pCppI )->queryInterface(
* reinterpret_cast< const Type * >( &pType ) ) );
if (typelib_TypeClass_INTERFACE == aRet.pType->eTypeClass)
@@ -62,12 +60,10 @@ inline void * SAL_CALL cpp_queryInterface( void * pCppI, typelib_TypeDescription
aRet.pReserved = 0;
return pRet;
}
-#ifndef EXCEPTIONS_OFF
}
catch (RuntimeException &)
{
}
-#endif
}
return 0;
}
diff --git a/include/cppuhelper/interfacecontainer.h b/include/cppuhelper/interfacecontainer.h
index 774f900..9a1cb4d 100644
--- a/include/cppuhelper/interfacecontainer.h
+++ b/include/cppuhelper/interfacecontainer.h
@@ -269,9 +269,6 @@ inline void OInterfaceContainerHelper::forEach( FuncT const& func )
::com::sun::star::uno::Reference<ListenerT> const xListener(
iter.next(), ::com::sun::star::uno::UNO_QUERY );
if (xListener.is()) {
-#if defined(EXCEPTIONS_OFF)
- func( xListener );
-#else
try {
func( xListener );
}
@@ -279,7 +276,6 @@ inline void OInterfaceContainerHelper::forEach( FuncT const& func )
if (exc.Context == xListener)
iter.remove();
}
-#endif
}
}
}
diff --git a/include/rtl/byteseq.hxx b/include/rtl/byteseq.hxx
index 8004473..aaff08e 100644
--- a/include/rtl/byteseq.hxx
+++ b/include/rtl/byteseq.hxx
@@ -23,10 +23,7 @@
#include <rtl/byteseq.h>
#include <rtl/alloc.h>
-#if ! defined EXCEPTIONS_OFF
#include <new>
-#endif
-
namespace rtl
{
@@ -54,20 +51,16 @@ inline ByteSequence::ByteSequence( const sal_Int8 * pElements, sal_Int32 len )
: _pSequence( 0 )
{
::rtl_byte_sequence_constructFromArray( &_pSequence, pElements, len );
-#if ! defined EXCEPTIONS_OFF
if (_pSequence == 0)
throw ::std::bad_alloc();
-#endif
}
//__________________________________________________________________________________________________
inline ByteSequence::ByteSequence( sal_Int32 len, enum __ByteSequence_NoDefault )
: _pSequence( 0 )
{
::rtl_byte_sequence_constructNoDefault( &_pSequence, len );
-#if ! defined EXCEPTIONS_OFF
if (_pSequence == 0)
throw ::std::bad_alloc();
-#endif
}
//__________________________________________________________________________________________________
inline ByteSequence::ByteSequence( sal_Sequence *pSequence, enum __ByteSequence_NoAcquire ) SAL_THROW(())
@@ -79,10 +72,8 @@ inline ByteSequence::ByteSequence( sal_Int32 len )
: _pSequence( 0 )
{
::rtl_byte_sequence_construct( &_pSequence, len );
-#if ! defined EXCEPTIONS_OFF
if (_pSequence == 0)
throw ::std::bad_alloc();
-#endif
}
//__________________________________________________________________________________________________
inline ByteSequence::~ByteSequence() SAL_THROW(())
@@ -104,20 +95,16 @@ inline sal_Bool ByteSequence::operator == ( const ByteSequence & rSeq ) const SA
inline sal_Int8 * ByteSequence::getArray()
{
::rtl_byte_sequence_reference2One( &_pSequence );
-#if ! defined EXCEPTIONS_OFF
if (_pSequence == 0)
throw ::std::bad_alloc();
-#endif
return (sal_Int8 *)_pSequence->elements;
}
//__________________________________________________________________________________________________
inline void ByteSequence::realloc( sal_Int32 nSize )
{
::rtl_byte_sequence_realloc( &_pSequence, nSize );
-#if ! defined EXCEPTIONS_OFF
if (_pSequence == 0)
throw ::std::bad_alloc();
-#endif
}
//__________________________________________________________________________________________________
inline sal_Int8 & ByteSequence::operator [] ( sal_Int32 nIndex )
diff --git a/include/rtl/string.hxx b/include/rtl/string.hxx
index c1cbba9..d58dc9f 100644
--- a/include/rtl/string.hxx
+++ b/include/rtl/string.hxx
@@ -23,6 +23,7 @@
#include "sal/config.h"
#include <cassert>
+#include <new>
#include <ostream>
#include <string.h>
@@ -37,10 +38,6 @@
#include "sal/log.hxx"
-#if !defined EXCEPTIONS_OFF
-#include <new>
-#endif
-
// The unittest uses slightly different code to help check that the proper
// calls are made. The class is put into a different namespace to make
// sure the compiler generates a different (if generating also non-inline)
@@ -231,11 +228,7 @@ public:
pData = 0;
rtl_uString2String( &pData, value, length, encoding, convertFlags );
if (pData == 0) {
-#if defined EXCEPTIONS_OFF
- abort();
-#else
throw std::bad_alloc();
-#endif
}
}
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index fedd35f..94527db 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -23,6 +23,7 @@
#include "sal/config.h"
#include <cassert>
+#include <new>
#include <ostream>
#include <string.h>
@@ -37,12 +38,6 @@
#include <rtl/stringconcat.hxx>
#endif
-#if defined EXCEPTIONS_OFF
-#include <stdlib.h>
-#else
-#include <new>
-#endif
-
// The unittest uses slightly different code to help check that the proper
// calls are made. The class is put into a different namespace to make
// sure the compiler generates a different (if generating also non-inline)
@@ -244,11 +239,7 @@ public:
pData = 0;
rtl_string2UString( &pData, value, length, encoding, convertFlags );
if (pData == 0) {
-#if defined EXCEPTIONS_OFF
- abort();
-#else
throw std::bad_alloc();
-#endif
}
}
@@ -274,11 +265,7 @@ public:
{
rtl_uString_newFromCodePoints(&pData, codePoints, codePointCount);
if (pData == NULL) {
-#if defined EXCEPTIONS_OFF
- abort();
-#else
throw std::bad_alloc();
-#endif
}
}
@@ -1894,11 +1881,7 @@ public:
rtl_uString * pNew = 0;
rtl_uString_intern( &pNew, pData );
if (pNew == 0) {
-#if defined EXCEPTIONS_OFF
- abort();
-#else
throw std::bad_alloc();
-#endif
}
return OUString( pNew, SAL_NO_ACQUIRE );
}
@@ -1937,11 +1920,7 @@ public:
rtl_uString_internConvert( &pNew, value, length, encoding,
convertFlags, pInfo );
if (pNew == 0) {
-#if defined EXCEPTIONS_OFF
- abort();
-#else
throw std::bad_alloc();
-#endif
}
return OUString( pNew, SAL_NO_ACQUIRE );
}
diff --git a/include/unotools/sharedunocomponent.hxx b/include/unotools/sharedunocomponent.hxx
index 5fa399d..a8bb97e 100644
--- a/include/unotools/sharedunocomponent.hxx
+++ b/include/unotools/sharedunocomponent.hxx
@@ -168,7 +168,6 @@ namespace utl
reset( _rxComponent, eMode );
}
-#ifndef EXCEPTIONS_OFF
inline SharedUNOComponent( const ::com::sun::star::uno::XInterface* _pInterface, ::com::sun::star::uno::UnoReference_QueryThrow _queryThrow )
{
set( _pInterface, _queryThrow );
@@ -188,7 +187,6 @@ namespace utl
{
set( _rxComponent, _setThrow );
}
-#endif
// SharedUNOComponent& operator=( const ::com::sun::star::uno::Reference< INTERFACE >& _rxComponent );
// This operator is intentionally not implemented. There is no canonic ownership after this operator
@@ -206,7 +204,6 @@ namespace utl
inline bool set( const ::com::sun::star::uno::BaseReference& _rRef, ::com::sun::star::uno::UnoReference_Query _query );
inline bool set( const ::com::sun::star::uno::Any& _rAny, ::com::sun::star::uno::UnoReference_Query _query );
-#ifndef EXCEPTIONS_OFF
inline void set( const ::com::sun::star::uno::XInterface* _pInterface, ::com::sun::star::uno::UnoReference_QueryThrow _queryThrow );
inline void set( const ::com::sun::star::uno::BaseReference & _rRef, ::com::sun::star::uno::UnoReference_QueryThrow _queryThrow );
inline void set( const ::com::sun::star::uno::Any& _rAny, ::com::sun::star::uno::UnoReference_QueryThrow _queryThrow );
@@ -214,7 +211,6 @@ namespace utl
inline void set( const INTERFACE* _pInterface, ::com::sun::star::uno::UnoReference_SetThrow _setThrow );
inline void set( const ::com::sun::star::uno::Reference< INTERFACE >& _rRef, ::com::sun::star::uno::UnoReference_SetThrow _setThrow );
inline void set( const SharedUNOComponent& _rComp, ::com::sun::star::uno::UnoReference_SetThrow _setThrow );
-#endif
INTERFACE* SAL_CALL operator->() const;
@@ -285,7 +281,6 @@ namespace utl
return makeAny( value.getTyped() );
}
-#ifndef EXCEPTIONS_OFF
//-------------------------------------------------------------------------
template < class INTERFACE, class COMPONENT >
void SharedUNOComponent< INTERFACE, COMPONENT >::set( const ::com::sun::star::uno::XInterface* _pInterface, ::com::sun::star::uno::UnoReference_QueryThrow _queryThrow )
@@ -329,7 +324,6 @@ namespace utl
// provoke an exception in case the component is NULL
m_xTypedComponent.set( m_xTypedComponent, _setThrow );
}
-#endif
//-------------------------------------------------------------------------
template < class INTERFACE, class COMPONENT >
diff --git a/include/vcl/threadex.hxx b/include/vcl/threadex.hxx
index 8319818..b7bd5fa 100644
--- a/include/vcl/threadex.hxx
+++ b/include/vcl/threadex.hxx
@@ -70,10 +70,8 @@ public:
typedef GenericSolarThreadExecutor<FuncT, ResultT> ExecutorT;
::std::auto_ptr<ExecutorT> const pExecutor( new ExecutorT(func) );
pExecutor->execute();
-#if ! defined(EXCEPTIONS_OFF)
if (pExecutor->m_exc.hasValue())
::cppu::throwException( pExecutor->m_exc );
-#endif
return *pExecutor->m_result;
}
@@ -83,9 +81,6 @@ private:
virtual long doIt()
{
-#if defined(EXCEPTIONS_OFF)
- m_result.reset( m_func() );
-#else
try {
m_result.reset( m_func() );
}
@@ -93,7 +88,6 @@ private:
// only UNO exceptions can be dispatched:
m_exc = ::cppu::getCaughtException();
}
-#endif
return 0;
}
@@ -113,10 +107,8 @@ public:
typedef GenericSolarThreadExecutor<FuncT, void> ExecutorT;
::std::auto_ptr<ExecutorT> const pExecutor( new ExecutorT(func) );
pExecutor->execute();
-#if ! defined(EXCEPTIONS_OFF)
if (pExecutor->m_exc.hasValue())
::cppu::throwException( pExecutor->m_exc );
-#endif
}
private:
@@ -125,9 +117,6 @@ private:
virtual long doIt()
{
-#if defined(EXCEPTIONS_OFF)
- m_func();
-#else
try {
m_func();
}
@@ -135,7 +124,6 @@ private:
// only UNO exceptions can be dispatched:
m_exc = ::cppu::getCaughtException();
}
-#endif
return 0;
}
diff --git a/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk b/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk
index cadefea..1abf3e2 100644
--- a/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk
@@ -15,6 +15,4 @@ gb_STDLIBS := $(PTHREAD_LIBS)
include $(GBUILDDIR)/platform/unxgcc.mk
-gb_LinkTarget_NOEXCEPTIONFLAGS += -DBOOST_NO_EXCEPTIONS
-
# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk b/solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk
index 7262ed8..5a1ad2e 100644
--- a/solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk
+++ b/solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk
@@ -14,6 +14,4 @@ gb_STDLIBS := $(PTHREAD_LIBS)
include $(GBUILDDIR)/platform/unxgcc.mk
-gb_LinkTarget_NOEXCEPTIONFLAGS += -DBOOST_NO_EXCEPTIONS
-
# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
index 566d871..c9adf88 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -112,10 +112,6 @@ gb_LinkTarget_EXCEPTIONFLAGS += \
endif
endif
-gb_LinkTarget_NOEXCEPTIONFLAGS := \
- -DEXCEPTIONS_OFF \
- -fno-exceptions \
-
gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS)
# optimization level
diff --git a/solenv/gbuild/platform/com_MSC_defs.mk b/solenv/gbuild/platform/com_MSC_defs.mk
index ff448f7..81f20da 100644
--- a/solenv/gbuild/platform/com_MSC_defs.mk
+++ b/solenv/gbuild/platform/com_MSC_defs.mk
@@ -225,9 +225,6 @@ gb_LinkTarget_EXCEPTIONFLAGS := \
-DEXCEPTIONS_ON \
-EHa \
-gb_LinkTarget_NOEXCEPTIONFLAGS := \
- -DEXCEPTIONS_OFF \
-
gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS)
gb_LinkTarget_LDFLAGS := \
commit 86435f9e28f8e7936777cbd6e8598994e7c42428
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Wed Aug 14 11:12:14 2013 +0200
Some improvements for operator<<(std::ostream&, const uno::Any&)
Change-Id: I2b3eb7a8e3d47b646eb8d4a8ca396a7c9de9545f
diff --git a/include/com/sun/star/uno/Any.hxx b/include/com/sun/star/uno/Any.hxx
index b7a5c04..a643a6f 100644
--- a/include/com/sun/star/uno/Any.hxx
+++ b/include/com/sun/star/uno/Any.hxx
@@ -19,10 +19,15 @@
#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
#define _COM_SUN_STAR_UNO_ANY_HXX_
+#include "sal/config.h"
+
+#include <cassert>
+#include <iomanip>
#include <ostream>
#include <com/sun/star/uno/Any.h>
#include <uno/data.h>
+#include <uno/sequence2.h>
#include <com/sun/star/uno/Type.hxx>
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/uno/genfunc.hxx>
@@ -589,74 +594,71 @@ sal_uInt16 Any::get<sal_uInt16>() const;
#endif // ! defined(EXCEPTIONS_OFF)
/**
- * @since LibreOffice 4.2
- */
+ Support for Any in std::ostream (and thus in CPPUNIT_ASSERT or SAL_INFO
+ macros, for example).
+
+ @since LibreOffice 4.2
+*/
template<typename charT, typename traits>
inline std::basic_ostream<charT, traits> &operator<<(std::basic_ostream<charT, traits> &o, Any &any) {
- // prolog with type
- o << "<Any: (" << any.getValueTypeName() << ")";
- // log value
+ o << "<Any: (" << any.getValueTypeName() << ')';
switch(any.pType->eTypeClass) {
- case typelib_TypeClass_BOOLEAN: {
- bool b = bool();
- any >>= b;
- o << b;
+ case typelib_TypeClass_VOID:
+ break;
+ case typelib_TypeClass_BOOLEAN:
+ o << ' ' << any.get<bool>();
break;
- }
-
case typelib_TypeClass_BYTE:
case typelib_TypeClass_SHORT:
case typelib_TypeClass_LONG:
- case typelib_TypeClass_HYPER: {
- sal_Int64 i = sal_Int64();
- any >>= i;
- o << i;
+ case typelib_TypeClass_HYPER:
+ o << ' ' << any.get<sal_Int64>();
break;
- }
-
case typelib_TypeClass_UNSIGNED_SHORT:
case typelib_TypeClass_UNSIGNED_LONG:
- case typelib_TypeClass_UNSIGNED_HYPER: {
- sal_uInt64 u = sal_uInt64();
- any >>= u;
- o << u;
+ case typelib_TypeClass_UNSIGNED_HYPER:
+ o << ' ' << any.get<sal_uInt64>();
break;
- }
-
case typelib_TypeClass_FLOAT:
- case typelib_TypeClass_DOUBLE: {
- double d = double();
- any >>= d;
- o << d;
+ case typelib_TypeClass_DOUBLE:
+ o << ' ' << any.get<double>();
break;
- }
-
- case typelib_TypeClass_STRING: {
- ::rtl::OUString s;
- any >>= s;
- o << s;
+ case typelib_TypeClass_CHAR: {
+ std::ios_base::fmtflags flgs = o.setf(
+ std::ios_base::hex, std::ios_base::basefield);
+ charT fill = o.fill('0');
+ o << " U+" << std::setw(4)
+ << *static_cast<sal_Unicode const *>(any.getValue());
+ o.setf(flgs);
+ o.fill(fill);
break;
}
-
- case typelib_TypeClass_VOID:
- case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_STRING:
+ o << ' ' << any.get<rtl::OUString>();
+ break;
case typelib_TypeClass_TYPE:
+ o << ' ' << any.get<css::uno::Type>().getTypeName();
+ break;
case typelib_TypeClass_SEQUENCE:
+ o << " len "
+ << ((*static_cast<uno_Sequence * const *>(any.getValue()))->
+ nElements);
+ break;
case typelib_TypeClass_ENUM:
+ o << ' ' << *static_cast<sal_Int32 const *>(any.getValue());
+ break;
case typelib_TypeClass_STRUCT:
case typelib_TypeClass_EXCEPTION:
- case typelib_TypeClass_INTERFACE: {
- // log nothing here - leave just type
+ o << ' ' << any.getValue();
+ break;
+ case typelib_TypeClass_INTERFACE:
+ o << ' ' << *static_cast<void * const *>(any.getValue());
break;
- }
-
default:
assert(false); // this cannot happen
- o << "!!this type should not happen in Any!!";
break;
}
- // epilog
- o << ">";
+ o << '>';
return o;
}
commit 8284ca9c4b5ca82e0a94d1fac9385f5e0dc6625f
Author: Boris Dušek <me at dusek.me>
Date: Mon Aug 12 09:03:08 2013 +0200
Implement operator<<(std::ostream&, const uno::Any&)
In other words, SAL_DEBUG(any) works now. Structured any types
(e.g. struct, array) not implemented yet.
Change-Id: I6460e72bbeff86da17711cab5d2018508468290c
Signed-off-by: Stephan Bergmann <sbergman at redhat.com>
diff --git a/include/com/sun/star/uno/Any.hxx b/include/com/sun/star/uno/Any.hxx
index 6f3bda9..b7a5c04 100644
--- a/include/com/sun/star/uno/Any.hxx
+++ b/include/com/sun/star/uno/Any.hxx
@@ -19,6 +19,8 @@
#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
#define _COM_SUN_STAR_UNO_ANY_HXX_
+#include <ostream>
+
#include <com/sun/star/uno/Any.h>
#include <uno/data.h>
#include <com/sun/star/uno/Type.hxx>
@@ -586,6 +588,78 @@ template <>
sal_uInt16 Any::get<sal_uInt16>() const;
#endif // ! defined(EXCEPTIONS_OFF)
+/**
+ * @since LibreOffice 4.2
+ */
+template<typename charT, typename traits>
+inline std::basic_ostream<charT, traits> &operator<<(std::basic_ostream<charT, traits> &o, Any &any) {
+ // prolog with type
+ o << "<Any: (" << any.getValueTypeName() << ")";
+ // log value
+ switch(any.pType->eTypeClass) {
+ case typelib_TypeClass_BOOLEAN: {
+ bool b = bool();
+ any >>= b;
+ o << b;
+ break;
+ }
+
+ case typelib_TypeClass_BYTE:
+ case typelib_TypeClass_SHORT:
+ case typelib_TypeClass_LONG:
+ case typelib_TypeClass_HYPER: {
+ sal_Int64 i = sal_Int64();
+ any >>= i;
+ o << i;
+ break;
+ }
+
+ case typelib_TypeClass_UNSIGNED_SHORT:
+ case typelib_TypeClass_UNSIGNED_LONG:
+ case typelib_TypeClass_UNSIGNED_HYPER: {
+ sal_uInt64 u = sal_uInt64();
+ any >>= u;
+ o << u;
+ break;
+ }
+
+ case typelib_TypeClass_FLOAT:
+ case typelib_TypeClass_DOUBLE: {
+ double d = double();
+ any >>= d;
+ o << d;
+ break;
+ }
+
+ case typelib_TypeClass_STRING: {
+ ::rtl::OUString s;
+ any >>= s;
+ o << s;
+ break;
+ }
+
+ case typelib_TypeClass_VOID:
+ case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_TYPE:
+ case typelib_TypeClass_SEQUENCE:
+ case typelib_TypeClass_ENUM:
+ case typelib_TypeClass_STRUCT:
+ case typelib_TypeClass_EXCEPTION:
+ case typelib_TypeClass_INTERFACE: {
+ // log nothing here - leave just type
+ break;
+ }
+
+ default:
+ assert(false); // this cannot happen
+ o << "!!this type should not happen in Any!!";
+ break;
+ }
+ // epilog
+ o << ">";
+ return o;
+}
+
}
}
}
More information about the Libreoffice-commits
mailing list