diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-08-13 03:57:57 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-08-13 03:57:57 +0000 |
commit | 3f3b45d1681253a576aae34789a1cf15beb4ddcf (patch) | |
tree | 272023dbc70cedd1db42fc27ed3a1bb18a1abe6d /TAO | |
parent | 1d1f463e0f8ca982112576ceb4d81718c98c6b6f (diff) | |
download | ATCD-3f3b45d1681253a576aae34789a1cf15beb4ddcf.tar.gz |
*** empty log message ***
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog-98c | 17 | ||||
-rw-r--r-- | TAO/tao/any.cpp | 4 | ||||
-rw-r--r-- | TAO/tao/any.h | 3 | ||||
-rw-r--r-- | TAO/tao/any.i | 27 | ||||
-rw-r--r-- | TAO/tao/corba.h | 17 | ||||
-rw-r--r-- | TAO/tao/default_client.cpp | 2 | ||||
-rw-r--r-- | TAO/tao/default_server.cpp | 2 | ||||
-rw-r--r-- | TAO/tao/giop.cpp | 6 | ||||
-rw-r--r-- | TAO/tao/giop.h | 13 | ||||
-rw-r--r-- | TAO/tao/giop.i | 17 | ||||
-rw-r--r-- | TAO/tao/typecode.h | 10 | ||||
-rw-r--r-- | TAO/tao/typecode.i | 26 |
12 files changed, 79 insertions, 65 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index db136abd641..d8d8b8fc309 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -1,3 +1,20 @@ +Tue Aug 12 22:37:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * tao/{any,typecode,cdr}.h: Finished appeasing the compiler gods + so that we can remove the ACE_INLINE hack. Things now seem to be + in order. + + * tao/corba.h: Got all the frigging header *.i files #included in + the right order so that the GCC compiler stops complaining. + + * tao/giop.cpp: We had method definitions that were defined inline + within the giop.h file. This was causing problems for GCC, which + kept warning that methods in the cdi.i file were being used before + being inlined. I've fixed this by creating a giop.i file. + + * tao/corba.h: Add #include files should be prefixed by "tao/". + I've fixed this in the release. + Tue Aug 12 16:23:17 1997 Chris Cleeland <cleeland@cs.wustl.edu> * tao/any.i: Added a missing replace() method used by overloaded diff --git a/TAO/tao/any.cpp b/TAO/tao/any.cpp index b33c111c318..aca0f02fc2f 100644 --- a/TAO/tao/any.cpp +++ b/TAO/tao/any.cpp @@ -78,7 +78,7 @@ CORBA_Any::CORBA_Any (CORBA::TypeCode_ptr tc, void *value, CORBA::Boolean orb_owns_data) - : value_ (value) , + : value_ (value), orb_owns_data_ (orb_owns_data) { type_ = tc; @@ -186,6 +186,7 @@ deep_copy (CORBA::TypeCode_ptr tc, CORBA::Principal_ptr src, dst; src = *(CORBA::Principal_ptr *) source; + // @@ Andy, please make sure to check for memory failure. dst = *(CORBA::Principal_ptr *) dest = new CORBA::Principal; // Principals are just opaque IDs ... copy them @@ -195,6 +196,7 @@ deep_copy (CORBA::TypeCode_ptr tc, if (dst->id.length > 0) { + // @@ Andy, please make sure to check for memory failure. dst->id.buffer = new CORBA::Octet [(unsigned) dst->id.length]; ACE_OS::memcpy (dst->id.buffer, src->id.buffer, (size_t) dst->id.length); diff --git a/TAO/tao/any.h b/TAO/tao/any.h index 817ebb6c761..e987f25cd5e 100644 --- a/TAO/tao/any.h +++ b/TAO/tao/any.h @@ -246,9 +246,6 @@ private: ACE_SYNCH_MUTEX lock_; // Serialize access to the reference count. -#if defined(__ACE_INLINE__) - ACE_INLINE -#endif /* __ACE_INLINE__ */ void replace (CORBA::TypeCode_ptr type, const void *value, CORBA::Boolean orb_owns_data); diff --git a/TAO/tao/any.i b/TAO/tao/any.i index e2232bf0fc4..4dcc5b08cd8 100644 --- a/TAO/tao/any.i +++ b/TAO/tao/any.i @@ -16,6 +16,19 @@ CORBA_Any::operator delete (void *p) ::operator delete (p); } +// insertion from special types + +// @@ Andy, please take a look at this method and make sure it's what +// you intended. I couldn't find it defined anywhere. --cjc +ACE_INLINE void +CORBA_Any::replace (CORBA::TypeCode_ptr type, + const void *value, + CORBA::Boolean orb_owns_data) +{ + CORBA_Environment e; + this->replace (type, value, orb_owns_data, e); +} + // insertion operators ACE_INLINE void @@ -118,20 +131,6 @@ CORBA_Any::to_string::to_string (char *&s, CORBA::ULong b) { } -// insertion from special types - -// @@ Andy, please take a look at this method and make sure it's what -// you intended. I couldn't find it defined anywhere. --cjc -ACE_INLINE void -CORBA_Any::replace (CORBA::TypeCode_ptr type, - const void *value, - CORBA::Boolean orb_owns_data) -{ - CORBA_Environment e; - this->replace(type, value, orb_owns_data, e); -} - - ACE_INLINE void CORBA_Any::operator<<= (from_boolean b) { diff --git a/TAO/tao/corba.h b/TAO/tao/corba.h index 34ef4671eac..21fefc9c756 100644 --- a/TAO/tao/corba.h +++ b/TAO/tao/corba.h @@ -106,12 +106,13 @@ //#include "tao/xdr.h" // include all the *.i file here -# if defined (__ACE_INLINE__) +#if defined (__ACE_INLINE__) +#include "tao/cdr.i" //always +#include "tao/typecode.i" #include "tao/any.i" #include "tao/boa.i" #include "tao/object.i" // should always be #include "tao/orbobj.i" -#include "tao/typecode.i" #include "tao/svrrqst.i" //#include "tao/factories.i" #include "tao/params.i" @@ -119,13 +120,11 @@ #include "tao/server_factory.i" #include "tao/default_client.i" #include "tao/default_server.i" -#include "cdr.i" //always -#include "marshal.i" // always -#include "iiopobj.i" -#include "iioporb.i" -#include "connect.i" -#include "roa.i" +#include "tao/marshal.i" // always +#include "tao/iiopobj.i" +#include "tao/iioporb.i" +#include "tao/connect.i" +#include "tao/roa.i" #endif /* __ACE_INLINE__ */ - #endif /* TAO_CORBA_H */ diff --git a/TAO/tao/default_client.cpp b/TAO/tao/default_client.cpp index 2c00846508b..d8115a08664 100644 --- a/TAO/tao/default_client.cpp +++ b/TAO/tao/default_client.cpp @@ -15,7 +15,7 @@ #define ACE_BUILD_SVC_DLL #if 0 -#include "default_client.h" +#include "tao/default_client.h" #endif /* 0 */ #include "tao/corba.h" diff --git a/TAO/tao/default_server.cpp b/TAO/tao/default_server.cpp index 4417194d26a..ec0432cccdc 100644 --- a/TAO/tao/default_server.cpp +++ b/TAO/tao/default_server.cpp @@ -13,7 +13,7 @@ #if 0 // XXXASG - commenting out temporarily as it doesn't compile #define ACE_BUILD_SVC_DLL #if 0 -#include "default_server.h" +#include "tao/default_server.h" #endif /* 0 */ #include "tao/corba.h" diff --git a/TAO/tao/giop.cpp b/TAO/tao/giop.cpp index 76d7c08cfab..61d73bd6562 100644 --- a/TAO/tao/giop.cpp +++ b/TAO/tao/giop.cpp @@ -40,7 +40,11 @@ // error is detected when marshaling or unmarshaling, it should be // reported. -#include "corba.h" +#include "tao/corba.h" + +#if !defined (__ACE_INLINE__) +#include "tao/giop.i" +#endif /* __ACE_INLINE__ */ #if 0 #include "ace/Log_Msg.h" diff --git a/TAO/tao/giop.h b/TAO/tao/giop.h index c05075cb44b..639cd7258d6 100644 --- a/TAO/tao/giop.h +++ b/TAO/tao/giop.h @@ -244,22 +244,15 @@ public: // calls that may fail -- and thus throw exceptions. void put_param (CORBA::TypeCode_ptr tc, - void *value, - CORBA::Environment &env) - { - (void) stream.encode(tc, value, 0, env); - } + void *value, + CORBA::Environment &env); ReplyStatusType invoke (CORBA::ExceptionList &exceptions, CORBA::Environment &env); void get_value (CORBA::TypeCode_ptr tc, void *value, - CORBA::Environment &env) - { - (void) stream.decode (tc, value, 0, env); - } - + CORBA::Environment &env); // No CORBA::Context support (deprecated). private: diff --git a/TAO/tao/giop.i b/TAO/tao/giop.i new file mode 100644 index 00000000000..8ea55a2d0bf --- /dev/null +++ b/TAO/tao/giop.i @@ -0,0 +1,17 @@ +// This may look like C, but it's really -*- C++ -*- + +ACE_INLINE void +GIOP::Invocation::get_value (CORBA::TypeCode_ptr tc, + void *value, + CORBA::Environment &env) +{ + (void) stream.decode (tc, value, 0, env); +} + +void +GIOP::Invocation::put_param (CORBA::TypeCode_ptr tc, + void *value, + CORBA::Environment &env) +{ + (void) stream.encode (tc, value, 0, env); +} diff --git a/TAO/tao/typecode.h b/TAO/tao/typecode.h index c65adab5c94..ea4396b218b 100644 --- a/TAO/tao/typecode.h +++ b/TAO/tao/typecode.h @@ -81,9 +81,6 @@ public: static CORBA::TypeCode_ptr _nil (void); // returns a NULL typecode -#if defined(__ACE_INLINE__) - ACE_INLINE -#endif CORBA::Boolean equal (const CORBA::TypeCode_ptr, CORBA::Environment &env) const; // compares two typecodes @@ -425,7 +422,7 @@ extern ACE_Svc_Export CORBA::TypeCode_ptr _tc_CORBA_TypeCode; extern ACE_Svc_Export CORBA::TypeCode_ptr _tc_CORBA_Principal; extern ACE_Svc_Export CORBA::TypeCode_ptr _tc_CORBA_Object; -#endif +#endif /* 0 */ // In this case, we make a substantial exception to how inline // files are included. Normally, we would conditionally include the @@ -440,12 +437,13 @@ extern ACE_Svc_Export CORBA::TypeCode_ptr _tc_CORBA_Object; # undef ACE_INLINE # define ACE_INLINE inline # define do_undef_on_ACE_INLINE -# endif +# endif /* __ACE_INLINE__ */ + //# include "typecode.i" # if defined (do_undef_on_ACE_INLINE) # undef do_undef_on_ACE_INLINE # undef ACE_INLINE # define ACE_INLINE -# endif +# endif /* __ACE_INLINE__ */ #endif /* TAO_TYPECODE_H */ diff --git a/TAO/tao/typecode.i b/TAO/tao/typecode.i index b5208bc830f..713ec5b3a26 100644 --- a/TAO/tao/typecode.i +++ b/TAO/tao/typecode.i @@ -1,10 +1,3 @@ -// just fetch the 'kind' field out of the typecode -ACE_INLINE void * -CORBA_TypeCode::operator new (size_t s) -{ - return ::operator new (s); -} - ACE_INLINE CORBA::TCKind CORBA_TypeCode::kind (CORBA::Environment &env) const { @@ -12,6 +5,13 @@ CORBA_TypeCode::kind (CORBA::Environment &env) const return _kind; } +// just fetch the 'kind' field out of the typecode +ACE_INLINE void * +CORBA_TypeCode::operator new (size_t s) +{ + return ::operator new (s); +} + ACE_INLINE CORBA::TypeCode_ptr CORBA_TypeCode::_duplicate (CORBA::TypeCode_ptr tc) { @@ -37,18 +37,6 @@ CORBA_TypeCode::CORBA_TypeCode (CORBA::TCKind kind) { } -// Returns true if the two typecodes are identical -ACE_INLINE CORBA::Boolean -CORBA_TypeCode::equal (const CORBA::TypeCode_ptr tc, - CORBA::Environment &env) const -{ - if (this->_kind != tc->kind (env)) - // simple case - return CORBA::B_FALSE; - else - return this->private_equal (tc, env); -} - // returns the Repository ID ACE_INLINE TAO_CONST CORBA::String CORBA_TypeCode::id (CORBA::Environment &env) const |