Kaydet (Commit) a5df560f authored tarafından Herbert Dürr's avatar Herbert Dürr

#i124421# force the availability of type_info symbols thrown by the ucb module

When exceptions are passed around in uno::Any types to be thrown later it
was observed on OSX64 that the type_info symbols of these exceptions were
not available anywhere. On most platforms the UNO bridge would synthesize
them by emulating how the platform's toolchain would do it. Forcing the
emission of the type_infos by the real toolchain is much better than
second guessing and reverse engineering its operation.

An even better approach would be to have the ucb throw the exceptions itself
instead of wrapping, rewrapping, unwrapping, etc. them. Once this is done
the dummyThrower helper function is no longer needed.
üst 184348f1
...@@ -3352,6 +3352,23 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite ) ...@@ -3352,6 +3352,23 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
return aException; return aException;
} }
// #i124421# force the availability of type_info symbols for exceptions
// that used to be passed around in uno::Any variables and thrown later
void ucb_dummyThrower( int i) {
switch( i) {
case 10: throw ucb::InteractiveNetworkGeneralException();
case 11: throw ucb::InteractiveAugmentedIOException();
case 12: throw ucb::InteractiveNetworkGeneralException();
case 13: throw ucb::InteractiveNetworkWriteException();
case 14: throw ucb::InteractiveNetworkReadException();
case 15: throw ucb::InteractiveNetworkConnectException();
case 16: throw ucb::InteractiveLockingLockedException();
case 17: throw ucb::InteractiveLockingNotLockedException();
case 18: throw ucb::InteractiveNetworkGeneralException();
case 19: throw ucb::InteractiveLockingLockExpiredException();
}
}
//========================================================================= //=========================================================================
// static // static
bool Content::shouldAccessNetworkAfterException( const DAVException & e ) bool Content::shouldAccessNetworkAfterException( const DAVException & e )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment