diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-28 16:50:13 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-28 16:50:13 +0000 |
commit | df6d9e1e2ae3b465730c93a68f595930c28532ef (patch) | |
tree | 31f6194f8d0db9639078327a4dd4853f9a72de57 | |
parent | c9714eb80fb88c79ab8a3ac89f45cd644be9b6ba (diff) | |
download | ATCD-df6d9e1e2ae3b465730c93a68f595930c28532ef.tar.gz |
ChangeLogTag: Thu Aug 28 11:42:46 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog_ref | 18 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_interface.cpp | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_traits.cpp | 5 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_interface.h | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_sequence.h | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/include/ast_decl.h | 2 |
6 files changed, 26 insertions, 6 deletions
diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref index c6e1422f7d5..3414c8a1174 100644 --- a/TAO/ChangeLog_ref +++ b/TAO/ChangeLog_ref @@ -1,3 +1,21 @@ +Thu Aug 28 11:42:46 2003 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_interface.cpp: + * TAO_IDL/be/be_visitor_traits.cpp: + * TAO_IDL/be_include/be_interface.h: + * TAO_IDL/be_include/be_sequence.h: + * TAO_IDL/include/ast_decl.h: + + Fixed code generation bugs caught by building the ORB services. + Also made all the flat_name() methods virtual and non-const, + since the be_interface version overrides the AST_Decl version, + and the AST_Decl version is non-const. Finally, made + be_sequence::gen_name() public, since it is now used by the + traits visitor to guard against duplicate arg traits template + class specializations when a sequence is used in an operation + in multiple IDL files, perhaps with an additional layer of + typedef. + Thu Aug 28 10:19:58 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu> * tao/Profile_Transport_Resolver.cpp: diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index f47bf92b0f4..27d929b19bd 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -158,7 +158,7 @@ be_interface::full_name (void) } const char * -be_interface::flat_name (void) const +be_interface::flat_name (void) { // Return the flattened full scoped name. return this->strategy_->flat_name (); diff --git a/TAO/TAO_IDL/be/be_visitor_traits.cpp b/TAO/TAO_IDL/be/be_visitor_traits.cpp index ce172ff25bc..9dfff51054c 100644 --- a/TAO/TAO_IDL/be/be_visitor_traits.cpp +++ b/TAO/TAO_IDL/be/be_visitor_traits.cpp @@ -34,6 +34,7 @@ #include "be_helper.h" #include "be_extern.h" #include "utl_identifier.h" +#include "idl_defines.h" ACE_RCSID (be, be_visitor_traits, @@ -310,7 +311,9 @@ be_visitor_traits::visit_sequence (be_sequence *node) *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__; - os->gen_ifdef_macro (node->flat_name (), "traits"); + // This will include the bound if there is one, and should also + // prevent duplication, even if there have been further typdefs. + os->gen_ifdef_macro (node->gen_name (), "traits"); *os << be_nl << be_nl << "ACE_TEMPLATE_SPECIALIZATION" << be_nl diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index 8bc257d46ad..fec2655f281 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -84,7 +84,7 @@ public: virtual const char *full_name (void); // Return the stringified full name. - const char *flat_name (void) const; + virtual const char *flat_name (void); // Return the flattened full scoped name. virtual const char *repoID (void) const; diff --git a/TAO/TAO_IDL/be_include/be_sequence.h b/TAO/TAO_IDL/be_include/be_sequence.h index d2e3cde05bd..6b20c4254e2 100644 --- a/TAO/TAO_IDL/be_include/be_sequence.h +++ b/TAO/TAO_IDL/be_include/be_sequence.h @@ -99,9 +99,8 @@ public: void field_node (be_field *node); // Accessors for the member. -protected: virtual char *gen_name (void); - // Helper to create_name. + // Helper to create_name, also used by the traits visitor. private: const char *smart_fwd_helper_name (AST_Decl *elem_scope, diff --git a/TAO/TAO_IDL/include/ast_decl.h b/TAO/TAO_IDL/include/ast_decl.h index 54d58590808..2835c8bb42a 100644 --- a/TAO/TAO_IDL/include/ast_decl.h +++ b/TAO/TAO_IDL/include/ast_decl.h @@ -201,7 +201,7 @@ public: virtual const char *full_name (void); // Return the stringified full name. - const char *flat_name (void); + virtual const char *flat_name (void); // Return the flattened full scoped name. const char *repoID (void); |