summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-28 16:50:13 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-28 16:50:13 +0000
commitdf6d9e1e2ae3b465730c93a68f595930c28532ef (patch)
tree31f6194f8d0db9639078327a4dd4853f9a72de57
parentc9714eb80fb88c79ab8a3ac89f45cd644be9b6ba (diff)
downloadATCD-df6d9e1e2ae3b465730c93a68f595930c28532ef.tar.gz
ChangeLogTag: Thu Aug 28 11:42:46 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog_ref18
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_traits.cpp5
-rw-r--r--TAO/TAO_IDL/be_include/be_interface.h2
-rw-r--r--TAO/TAO_IDL/be_include/be_sequence.h3
-rw-r--r--TAO/TAO_IDL/include/ast_decl.h2
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);