summaryrefslogtreecommitdiff
path: root/cppe/src
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2005-07-22 12:57:10 +0000
committerMatthew Newhook <matthew@zeroc.com>2005-07-22 12:57:10 +0000
commit43ac09a07344225bab098f33d0428f2c5f65b946 (patch)
tree8aa705ad37bbaf52e37863d9a1a47f34067eb9a3 /cppe/src
parentcode generator generates ARMv4 exception handling bug workaround. (diff)
downloadice-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.cpp13
-rw-r--r--cppe/src/IceE/Proxy.cpp44
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__);
}