diff options
author | Matthew Newhook <matthew@zeroc.com> | 2005-07-22 12:57:10 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2005-07-22 12:57:10 +0000 |
commit | 43ac09a07344225bab098f33d0428f2c5f65b946 (patch) | |
tree | 8aa705ad37bbaf52e37863d9a1a47f34067eb9a3 /cppe/src | |
parent | code generator generates ARMv4 exception handling bug workaround. (diff) | |
download | ice-43ac09a07344225bab098f33d0428f2c5f65b946.tar.bz2 ice-43ac09a07344225bab098f33d0428f2c5f65b946.tar.xz ice-43ac09a07344225bab098f33d0428f2c5f65b946.zip |
remove previous ARMv4 exception handling work around. put in new one.
Diffstat (limited to 'cppe/src')
-rw-r--r-- | cppe/src/IceE/LocatorInfo.cpp | 13 | ||||
-rw-r--r-- | cppe/src/IceE/Proxy.cpp | 44 |
2 files changed, 42 insertions, 15 deletions
diff --git a/cppe/src/IceE/LocatorInfo.cpp b/cppe/src/IceE/LocatorInfo.cpp index 15bbefd7d5d..38481979e5b 100644 --- a/cppe/src/IceE/LocatorInfo.cpp +++ b/cppe/src/IceE/LocatorInfo.cpp @@ -278,10 +278,6 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca ObjectPrx object; cached = true; - // COMPILERFIX: EVC 4.0 sp4 ARMv4 compiler messes up exception - // handling on occasion. - auto_ptr<LocalException> exception; - try { if(!ref->getAdapterId().empty()) @@ -340,14 +336,14 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca NotRegisteredException ex(__FILE__, __LINE__); ex.kindOfObject = "object adapter"; ex.id = ref->getAdapterId(); - exception = auto_ptr<LocalException>(dynamic_cast<LocalException*>(ex.ice_clone())); + throw ex; } catch(const ObjectNotFoundException&) { NotRegisteredException ex(__FILE__, __LINE__); ex.kindOfObject = "object"; ex.id = identityToString(ref->getIdentity()); - exception = auto_ptr<LocalException>(dynamic_cast<LocalException*>(ex.ice_clone())); + throw ex; } catch(const NotRegisteredException&) { @@ -372,11 +368,6 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca throw; } - if(exception.get()) - { - exception->ice_throw(); - } - if(ref->getInstance()->traceLevels()->location >= 1 && !endpoints.empty()) { if(cached) diff --git a/cppe/src/IceE/Proxy.cpp b/cppe/src/IceE/Proxy.cpp index 5cbe885fcb3..b7ba529d129 100644 --- a/cppe/src/IceE/Proxy.cpp +++ b/cppe/src/IceE/Proxy.cpp @@ -184,6 +184,12 @@ IceProxy::Ice::Object::ice_isA(const string& __id, const Context& __context) { __handleException(__ex, __cnt); } +#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug. + catch(...) + { + throw; + } +#endif } } @@ -213,6 +219,12 @@ IceProxy::Ice::Object::ice_ping(const Context& __context) { __handleException(__ex, __cnt); } +#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug. + catch(...) + { + throw; + } +#endif } } @@ -242,6 +254,12 @@ IceProxy::Ice::Object::ice_ids(const Context& __context) { __handleException(__ex, __cnt); } +#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug. + catch(...) + { + throw; + } +#endif } } @@ -271,6 +289,12 @@ IceProxy::Ice::Object::ice_id(const Context& __context) { __handleException(__ex, __cnt); } +#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug. + catch(...) + { + throw; + } +#endif } } @@ -315,6 +339,12 @@ IceProxy::Ice::Object::ice_invoke(const string& operation, { __handleException(__ex, __cnt); } +#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug. + catch(...) + { + throw; + } +#endif } } #endif @@ -554,6 +584,12 @@ IceProxy::Ice::Object::ice_connection() { __handleException(__ex, __cnt); } +#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug. + catch(...) + { + throw; + } +#endif } } @@ -731,7 +767,7 @@ IceDelegate::Ice::Object::ice_isA(const string& __id, const Context& __context) } __is->read(__ret); } - catch(const ::Ice::UserException& __ex) + catch(const ::Ice::UserException&) { throw ::Ice::UnknownUserException(__FILE__, __LINE__); } @@ -756,7 +792,7 @@ IceDelegate::Ice::Object::ice_ping(const Context& __context) __is->throwException(); } } - catch(const ::Ice::UserException& __ex) + catch(const ::Ice::UserException&) { throw ::Ice::UnknownUserException(__FILE__, __LINE__); } @@ -782,7 +818,7 @@ IceDelegate::Ice::Object::ice_ids(const Context& __context) } __is->read(__ret); } - catch(const ::Ice::UserException& __ex) + catch(const ::Ice::UserException&) { throw ::Ice::UnknownUserException(__FILE__, __LINE__); } @@ -809,7 +845,7 @@ IceDelegate::Ice::Object::ice_id(const Context& __context) } __is->read(__ret); } - catch(const ::Ice::UserException& __ex) + catch(const ::Ice::UserException&) { throw ::Ice::UnknownUserException(__FILE__, __LINE__); } |