Index: ace/CORBA_macros.h
===================================================================
RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/ace/CORBA_macros.h,v
retrieving revision 1.19
diff -u -r1.19 CORBA_macros.h
--- CORBA_macros.h	1999/06/28 00:53:07	1.19
+++ CORBA_macros.h	1999/07/31 22:52:52
@@ -174,15 +174,15 @@
 // or ACE_CHECK_ENV.  These two macros should _NOT_ be used within
 // try blocks.  Use ACE_TRY_CHECK or ACE_TRY_CHECK_EX instead.
 # define ACE_CHECK \
-    if (ACE_TRY_ENV . exception () != 0) \
+    if (ACE_TRY_ENV . _exception () != 0) \
       return
 // When function requires a return value
 # define ACE_CHECK_RETURN(RETV) \
-    if (ACE_TRY_ENV . exception () != 0) \
+    if (ACE_TRY_ENV . _exception () != 0) \
       return RETV
 
 // ACE_THROW_INT should not be used by the user.
-# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV.exception (new EXCEPTION)
+# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV._exception (new EXCEPTION)
 
 // Throwing exceptions will inevitably cause an return from the current
 // function.  These two macros should _NOT_ be used within try blocks.
@@ -190,14 +190,14 @@
 # define ACE_THROW(EXCEPTION) \
     do \
       { \
-        ACE_TRY_ENV.exception (new EXCEPTION); \
+        ACE_TRY_ENV._exception (new EXCEPTION); \
         return; \
       } while (0)
 
 # define ACE_THROW_RETURN(EXCEPTION,RETV) \
     do \
       { \
-        ACE_TRY_ENV.exception (new EXCEPTION); \
+        ACE_TRY_ENV._exception (new EXCEPTION); \
         return RETV; \
       } while (0)
 
@@ -245,7 +245,7 @@
 // Check for exceptions within try blocks.
 # define ACE_TRY_CHECK \
     { \
-      if (ACE_TRY_ENV.exception () != 0) \
+      if (ACE_TRY_ENV._exception () != 0) \
         { \
           ACE_TRY_FLAG = 0; \
           goto ACE_TRY_LABEL; \
@@ -255,7 +255,7 @@
 // Checking exception within EX try blocks.
 # define ACE_TRY_CHECK_EX(LABEL) \
     { \
-      if (ACE_TRY_ENV.exception () != 0) \
+      if (ACE_TRY_ENV._exception () != 0) \
         { \
           ACE_TRY_FLAG = 0; \
           goto ACE_TRY_LABEL ## LABEL; \
@@ -265,14 +265,14 @@
 // Throwing exception within TRY blocks.
 # define ACE_TRY_THROW(EXCEPTION) \
     { \
-      ACE_TRY_ENV.exception (new EXCEPTION); \
+      ACE_TRY_ENV._exception (new EXCEPTION); \
       ACE_TRY_FLAG = 0; \
       goto ACE_TRY_LABEL; \
     }
 
 # define ACE_TRY_THROW_EX(EXCEPTION,LABEL) \
     { \
-      ACE_TRY_ENV.exception (new EXCEPTION); \
+      ACE_TRY_ENV._exception (new EXCEPTION); \
       ACE_TRY_FLAG = 0; \
       goto ACE_TRY_LABEL ## LABEL; \
     }
@@ -291,14 +291,14 @@
 # define ACE_CATCH(TYPE,VAR) \
      } while (0); \
    do \
-     if (ACE_TRY_ENV.exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
-       TYPE::_narrow(ACE_TRY_ENV.exception ()) != 0) \
+     if (ACE_TRY_ENV._exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
+       TYPE::_narrow(ACE_TRY_ENV._exception ()) != 0) \
        { \
          CORBA::Environment ACE_CAUGHT_ENV = ACE_TRY_ENV;\
          ACE_EXCEPTION_NOT_CAUGHT = 0; \
-         TYPE &VAR = *TYPE::_narrow (ACE_CAUGHT_ENV.exception ()); \
+         TYPE &VAR = *TYPE::_narrow (ACE_CAUGHT_ENV._exception ()); \
          ACE_UNUSED_ARG (VAR); \
-         ACE_TRY_ENV.clear ();
+         ACE_TRY_ENV._clear ();
 
 // ACE_CATCHANY uses ACE_CATCH to catch all CORBA exceptions.
 # define ACE_CATCHANY ACE_CATCH (CORBA::Exception, ACE_ANY_EXCEPTION)
Index: TAO/tao/Environment.cpp
===================================================================
RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.cpp,v
retrieving revision 1.29
diff -u -r1.29 Environment.cpp
--- Environment.cpp	1999/06/24 01:49:38	1.29
+++ Environment.cpp	1999/07/31 22:52:52
@@ -88,15 +88,15 @@
 {
   if (this != &rhs)
     {
-      this->clear ();
-      this->exception (rhs.exception_);
+      this->_clear ();
+      this->_exception (rhs.exception_);
     }
   return *this;
 }
 
 CORBA_Environment::~CORBA_Environment (void)
 {
-  this->clear ();
+  this->_clear ();
 
   // If previous is 0 then this is the first Environment, allocated
   // with the ORB, it shouldn't try to pop because the ORB is beign
@@ -106,11 +106,11 @@
 }
 
 void
-CORBA_Environment::exception (CORBA_Exception *ex)
+CORBA_Environment::_exception (CORBA_Exception *ex)
 {
   if (ex != this->exception_)
     {
-      this->clear ();
+      this->_clear ();
       this->exception_ = ex;
     }
   if (this->exception_ != 0)
@@ -123,7 +123,7 @@
 }
 
 void
-CORBA_Environment::clear (void)
+CORBA_Environment::_clear (void)
 {
   if (this->exception_)
     this->exception_->_decr_refcnt ();
@@ -149,7 +149,7 @@
   // 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 CORBA::default_environment ();
@@ -210,8 +210,8 @@
 // standard I/O stream passed as a parameter.
 
 void
-CORBA::Environment::print_exception (const char *info,
-                                     FILE *) const
+CORBA::Environment::_print_exception (const char *info,
+                                      FILE *) const
 {
   if (this->exception_)
     {
Index: TAO/tao/Environment.h
===================================================================
RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.h,v
retrieving revision 1.17
diff -u -r1.17 Environment.h
--- Environment.h	1999/06/25 19:51:05	1.17
+++ Environment.h	1999/07/31 22:52:52
@@ -76,11 +76,11 @@
   static CORBA_Environment * _nil (void);
   // Some static methods that need to be defined in every pseudo object
 
-  CORBA_Exception* exception (void) const;
+  CORBA_Exception* _exception (void) const;
   // Return the exception.  Caller must call <_incr_refcnf> in order
   // to keep the ptr.
 
-  void exception (CORBA_Exception *ex);
+  void _exception (CORBA_Exception *ex);
   // Set the exception to <ex>, taking a reference on it.
 
   int exception_type (void) const;
@@ -90,10 +90,10 @@
   const char *exception_id (void) const;
   // return the repository ID for the exception.
 
-  void clear (void);
+  void _clear (void);
   // Clear the exception.
 
-  void print_exception (const char *info,
+  void _print_exception (const char *info,
                         FILE *f=stdout) const;
   // Print the exception to output determined by f.  This function is
   // not CORBA compliant.
Index: TAO/tao/Environment.i
===================================================================
RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.i,v
retrieving revision 1.7
diff -u -r1.7 Environment.i
--- Environment.i	1999/06/25 19:50:57	1.7
+++ Environment.i	1999/07/31 22:52:52
@@ -15,7 +15,7 @@
 }
 
 ACE_INLINE CORBA_Exception*
-CORBA_Environment::exception (void) const
+CORBA_Environment::_exception (void) const
 {
   return this->exception_;
 }
Index: TAO/tao/Invocation.cpp
===================================================================
RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Invocation.cpp,v
retrieving revision 1.102
diff -u -r1.102 Invocation.cpp
--- Invocation.cpp	1999/07/22 20:06:46	1.102
+++ Invocation.cpp	1999/07/31 22:52:52
@@ -47,6 +47,12 @@
 
 #endif /* ACE_ENABLE_TIMEPROBES */
 
+#if defined (ACE_CORBA_HAS_EXCEPTIONS)
+#define ACE_THROW_EX(EXCEPTION) EXCEPTION->_raise ();
+#else
+#define ACE_THROW_EX(EXCEPTION) ACE_TRY_ENV._exception (EXCEPTION)
+#endif /* ACE_CORBA_HAS_EXCEPTIONS */
+
 // Normal invocations don't involve any heap al; messages are
 // constructed into stack-based buffers and are read into those
 // buffers too.  Larger buffers are heap-allocated as needed.
@@ -472,9 +478,7 @@
                                               CORBA::COMPLETED_YES));
           ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION);
 
-          // @@ Think about a better way to raise the exception here,
-          //    maybe we need some more macros?
-          ACE_TRY_ENV.exception (exception);  // We can not use ACE_THROW here.
+          ACE_THROW_EX (exception);
           return TAO_INVOKE_EXCEPTION;
         }
 
@@ -560,9 +564,7 @@
                         "TAO: (%P|%t) Raising exception %s\n",
                         buf.in ()));
 
-          // @@ Think about a better way to raise the exception here,
-          //    maybe we need some more macros?
-          ACE_TRY_ENV.exception (exception); // We can not use ACE_THROW here.
+          ACE_THROW_EX (exception);
           return TAO_INVOKE_EXCEPTION;
         }
 
@@ -746,11 +748,7 @@
         ex->minor (minor);
         ex->completed (CORBA::CompletionStatus (completion));
 
-
-        // @@ There should be a better way to raise this exception!
-        //    This code works for both native and emulated exceptions,
-        //    but it is ugly.
-        ACE_TRY_ENV.exception (ex); // We can not use ACE_THROW here.
+        ACE_THROW_EX (ex);
         return TAO_INVOKE_OK;
       }
       // NOTREACHED.
