summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bridges/source/cpp_uno/gcc3_ios_arm/except.cxx16
-rw-r--r--ucbhelper/source/provider/cancelcommandexecution.cxx23
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!!!" );