diff options
-rw-r--r-- | bridges/source/cpp_uno/gcc3_ios_arm/except.cxx | 16 | ||||
-rw-r--r-- | ucbhelper/source/provider/cancelcommandexecution.cxx | 23 |
2 files changed, 13 insertions, 26 deletions
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx index 22026ccfff57..2f1df7a85adb 100644 --- a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx +++ b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx @@ -35,6 +35,7 @@ #include <com/sun/star/uno/genfunc.hxx> #include <com/sun/star/uno/RuntimeException.hpp> #include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp> +#include <com/sun/star/ucb/NameClashException.hpp> #include <typelib/typedescription.hxx> #include <uno/any2.h> @@ -171,12 +172,21 @@ public: RTTI::RTTI() SAL_THROW(()) : m_hApp( dlopen( 0, RTLD_LAZY ) ) { -#if 0 // Insert commonly needed type_infos to avoid dlsym() calls - // Ideally we should insert all needed ones + // Ideally we should insert all needed ones, and we actually must, + // for arm64, as the dynamically generated type_infos don't seem + // to work correctly. Luckily it seems that quite few types of + // exceptions are thrown through the C++/UNO bridge at least in + // the TiledLibreOffice test app. + + // (As no Java, Basic or Python is supported in LO code on iOS, we + // can know the set of types of exceptions throws a priori, so + // keeping this list complete should be possible.) + m_rttis.insert( t_rtti_map::value_type( "com.sun.star.ucb.InteractiveAugmentedIOException", (std::type_info*) &typeid( com::sun::star::ucb::InteractiveAugmentedIOException ) ) ); -#endif + m_rttis.insert( t_rtti_map::value_type( "com.sun.star.ucb.NameClashException", + (std::type_info*) &typeid( com::sun::star::ucb::NameClashException ) ) ); } RTTI::~RTTI() SAL_THROW(()) diff --git a/ucbhelper/source/provider/cancelcommandexecution.cxx b/ucbhelper/source/provider/cancelcommandexecution.cxx index 617c96c0e569..2f4e42e2c0a4 100644 --- a/ucbhelper/source/provider/cancelcommandexecution.cxx +++ b/ucbhelper/source/provider/cancelcommandexecution.cxx @@ -74,22 +74,6 @@ void cancelCommandExecution( const uno::Any & rException, } } -#if defined IOS && defined __arm64 - // No Java, Basic, or Python on iOS, so try to throw the exception - // directly. Much simpler. Especially as I haven't managed yet to - // get the C++/UNO bridge to work for arm64, and this - // cppu::throwException thing seems to be the only use for it, at - // least in the test apps... - - ucb::NameClashException aNCE; - if ( rException >>= aNCE ) - throw aNCE; - - lang::IllegalArgumentException aIAE; - if ( rException >>= aIAE ) - throw aIAE; -#endif - cppu::throwException( rException ); OSL_FAIL( "Return from cppu::throwException call!!!" ); throw uno::RuntimeException(); @@ -127,13 +111,6 @@ void cancelCommandExecution( const ucb::IOErrorCode eError, } } -#if defined IOS && defined __arm64 - // See comment above. - ucb::InteractiveAugmentedIOException aExc; - if ( xRequest->getRequest() >>= aExc ) - throw aExc; -#endif - cppu::throwException( xRequest->getRequest() ); OSL_FAIL( "Return from cppu::throwException call!!!" ); |