summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/tao/Environment.cpp20
-rw-r--r--TAO/tao/Environment.h9
-rw-r--r--TAO/tao/Exception.h3
3 files changed, 25 insertions, 7 deletions
diff --git a/TAO/tao/Environment.cpp b/TAO/tao/Environment.cpp
index 6bc3b0fdadd..677345ae6ad 100644
--- a/TAO/tao/Environment.cpp
+++ b/TAO/tao/Environment.cpp
@@ -37,7 +37,12 @@ CORBA_Environment::CORBA_Environment (TAO_ORB_Core* orb_core)
CORBA_Environment::CORBA_Environment (void)
: exception_ (0),
+#if !defined (TAO_USES_FLICK)
previous_ (0)
+#else
+ previous_ (0),
+ _major(CORBA::NO_EXCEPTION)
+#endif /* TAO_USES_FLICK */
{
// TAO_ORB_Core_instance ()->default_environment (this);
}
@@ -56,7 +61,7 @@ CORBA_Environment::CORBA_Environment (TAO_ORB_Core* orb_core)
{
orb_core->default_environment (this);
}
-#endif
+#endif
CORBA_Environment&
CORBA_Environment::operator= (const CORBA_Environment& rhs)
@@ -91,6 +96,9 @@ CORBA_Environment::exception (CORBA_Exception *ex)
if (this->exception_ != 0)
{
this->exception_->_incr_refcnt ();
+#if defined (TAO_USES_FLICK)
+ this->_major = this->exception_type();
+#endif /* TAO_USES_FLICK */
#if defined (TAO_HAS_EXCEPTIONS)
this->exception_->_raise ();
#endif /* TAO_HAS_EXCEPTIONS */
@@ -124,7 +132,7 @@ CORBA_Environment::default_environment ()
// the Environment argument) because then the user is supposed to
// clear the environment before calling into the ORB.
//
- TAO_ORB_Core_instance ()->default_environment ()->clear ();
+ TAO_ORB_Core_instance ()->default_environment ()->clear ();
#endif /* TAO_HAS_EXCEPTIONS */
return *TAO_ORB_Core_instance ()->default_environment ();
@@ -159,7 +167,7 @@ CORBA::Environment::exception_type (void) const
typecode_extra, sizeof typecode_extra - 1) != 0)
|| ACE_OS::strncmp (id, poa_prefix, sizeof poa_prefix - 1) == 0)
return CORBA::SYSTEM_EXCEPTION;
-
+
return CORBA::USER_EXCEPTION;
}
@@ -182,12 +190,12 @@ CORBA::Environment::print_exception (const char *info,
if (this->exception_)
{
const char *id = this->exception_->_id ();
-
+
ACE_DEBUG ((LM_ERROR, "(%P|%t) EXCEPTION, %s\n", info));
-
+
// @@ get rid of this logic, and rely on some member function on
// Exception to say if it's user or system exception.
-
+
if (this->exception_type () == CORBA::SYSTEM_EXCEPTION)
{
CORBA::SystemException *x2 =
diff --git a/TAO/tao/Environment.h b/TAO/tao/Environment.h
index 47fb6b5ca0b..532f2b1f3c1 100644
--- a/TAO/tao/Environment.h
+++ b/TAO/tao/Environment.h
@@ -101,18 +101,25 @@ public:
// = Obtain a default environment to use with TAO.
static CORBA_Environment &default_environment (void);
+#if defined (TAO_USES_FLICK)
private:
+#endif /* TAO_USES_FLICK */
+
friend class TAO_ORB_Core;
CORBA_Environment (TAO_ORB_Core *orb_core);
// Initialize using a well known ORB Core; this is intended for the
// bootstraping of the ORB_Core, not for general consumption.
-private:
CORBA_Exception* exception_;
// Pointer to the exception object contained in the environment.
CORBA_Environment* previous_;
// The previous environment on the "default environment stack".
+
+#if defined (TAO_USES_FLICK)
+ int _major;
+ char *_id;
+#endif /* TAO_USES_FLICK */
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/tao/Exception.h b/TAO/tao/Exception.h
index 49e43800aca..787b70c6451 100644
--- a/TAO/tao/Exception.h
+++ b/TAO/tao/Exception.h
@@ -169,7 +169,10 @@ public:
virtual void _raise (void);
+#if defined (TAO_USES_FLICK)
private:
+#endif /* TAO_USES_FLICK */
+
CORBA::ULong minor_;
// minor code