summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-22 22:58:15 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-22 22:58:15 +0000
commit4d115dfab0435c66776898c9fe6ca1f4758b3f03 (patch)
tree08c51f61793a43bbf99440b85855d918b3067f6e
parent439298460e7d73bc29b162c48c8493323ee782ec (diff)
downloadATCD-4d115dfab0435c66776898c9fe6ca1f4758b3f03.tar.gz
ChangeLogTag:Thu Jan 22 16:56:32 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-98c12
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp31
-rw-r--r--TAO/TAO_IDL/be/be_visitor_args.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root.cpp10
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence.cpp16
-rw-r--r--TAO/TAO_IDL/be_include/be_interface.h9
7 files changed, 61 insertions, 26 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index ede99830bb1..2ed7ae826b6 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,15 @@
+Thu Jan 22 16:56:32 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * TAO_IDL/be_include/be_interface.h:
+ * TAO_IDL/be/be_interface.cpp:
+ * TAO_IDL/be/be_visitor_interface.cpp:
+ Fixed some relative name problems for the server header file.
+
+ * TAO_IDL/be/be_visitor_sequence.cpp:
+ * TAO_IDL/be/be_visitor_root.cpp:
+ * TAO_IDL/be/be_visitor_args.cpp:
+ Get rid of some "unused arg" warnings.
+
Thu Jan 22 15:26:55 1998 Chris Cleeland <cleeland@cs.wustl.edu>
* tao/object.i: CORBA::Object --> CORBA_Object for internal stuff.
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index a8e506be146..e15bfbdd79a 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -698,7 +698,7 @@ int be_interface::gen_server_header (void)
*sh << "public virtual ";
intf = be_interface::narrow_from_decl (inherits ()[0]);
- *sh << intf->full_skel_name ();
+ *sh << intf->relative_skel_name (this->full_skel_name ());
for (i = 1; i < n_inherits (); i++)
{
*sh << ", public virtual ";
@@ -2014,14 +2014,29 @@ be_interface::gen_skel_helper (be_interface *derived,
return 0;
}
+const char*
+be_interface::relative_coll_name (const char *collname)
+{
+ return be_interface::relative_name (this->full_coll_name (),
+ collname);
+}
+
// return the relative skeleton name (needed due to NT compiler insanity)
-char *
+const char *
be_interface::relative_skel_name (const char *skelname)
{
- // some compilers do not like generating a fully scoped name for a type that
- // was defined in the same enclosing scope in which it was defined. For such,
- // we emit a macro defined in the ACE library.
- //
+ return be_interface::relative_name (this->full_skel_name (),
+ skelname);
+}
+
+const char*
+be_interface::relative_name (const char *localname,
+ const char *othername)
+{
+ // some compilers do not like generating a fully scoped name for a
+ // type that was defined in the same enclosing scope in which it was
+ // defined. We have to emit just the partial name, relative to our
+ // "localname"
// The tricky part here is that it is not enough to check if the
// typename we are using was defined in the current scope. But we
@@ -2053,8 +2068,8 @@ be_interface::relative_skel_name (const char *skelname)
// macro. Whenever there is no match, the remaining components of the
// def_scope form the second argument
- ACE_OS::strcpy (def_name, this->full_skel_name ());
- ACE_OS::strcpy (use_name, skelname);
+ ACE_OS::strcpy (def_name, localname);
+ ACE_OS::strcpy (use_name, othername);
while (def_curr && use_curr)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_args.cpp b/TAO/TAO_IDL/be/be_visitor_args.cpp
index c0bc5ba43bf..4403b67e2e8 100644
--- a/TAO/TAO_IDL/be/be_visitor_args.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_args.cpp
@@ -191,7 +191,7 @@ int be_visitor_args_decl::visit_enum (be_enum *node)
return 0;
}
-int be_visitor_args_decl::visit_union (be_union *node)
+int be_visitor_args_decl::visit_union (be_union *)
{
return this->dump_structure ();
}
@@ -217,7 +217,7 @@ int be_visitor_args_decl::visit_array (be_array *node)
return 0;
}
-int be_visitor_args_decl::visit_sequence (be_sequence *node)
+int be_visitor_args_decl::visit_sequence (be_sequence *)
{
return this->dump_structure ();
}
@@ -244,7 +244,7 @@ int be_visitor_args_decl::visit_typedef (be_typedef *node)
return node->primitive_base_type ()->accept (this);
}
-int be_visitor_args_decl::visit_native (be_native *node)
+int be_visitor_args_decl::visit_native (be_native *)
{
switch (this->argument_direction_)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp
index c9cdc92dc02..baa3059fee4 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp
@@ -37,7 +37,8 @@ int be_visitor_collocated_sh::visit_interface (be_interface *node)
*os << "," << nl;
be_interface* parent =
be_interface::narrow_from_decl (node->inherits()[i]);
- *os << " public virtual " << parent->full_coll_name ();
+ *os << " public virtual "
+ << parent->relative_coll_name (node->full_coll_name ());
}
}
*os << "\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_root.cpp b/TAO/TAO_IDL/be/be_visitor_root.cpp
index f6dfc5afee7..d483a1e5472 100644
--- a/TAO/TAO_IDL/be/be_visitor_root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root.cpp
@@ -107,7 +107,7 @@ int be_visitor_root_ci::visit_root (be_root *node)
return 0;
}
-int be_visitor_root_ci::visit_sequence (be_sequence *node)
+int be_visitor_root_ci::visit_sequence (be_sequence *)
{
return 0;
}
@@ -151,7 +151,7 @@ int be_visitor_root_cs::visit_root (be_root *node)
return 0;
}
-int be_visitor_root_cs::visit_sequence (be_sequence *node)
+int be_visitor_root_cs::visit_sequence (be_sequence *)
{
return 0;
}
@@ -198,7 +198,7 @@ int be_visitor_root_sh::visit_root (be_root *node)
return 0;
}
-int be_visitor_root_sh::visit_sequence (be_sequence *node)
+int be_visitor_root_sh::visit_sequence (be_sequence *)
{
return 0;
}
@@ -242,7 +242,7 @@ int be_visitor_root_si::visit_root (be_root *node)
return 0;
}
-int be_visitor_root_si::visit_sequence (be_sequence *node)
+int be_visitor_root_si::visit_sequence (be_sequence *)
{
return 0;
}
@@ -286,7 +286,7 @@ int be_visitor_root_ss::visit_root (be_root *node)
return 0;
}
-int be_visitor_root_ss::visit_sequence (be_sequence *node)
+int be_visitor_root_ss::visit_sequence (be_sequence *)
{
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence.cpp b/TAO/TAO_IDL/be/be_visitor_sequence.cpp
index 846cb978a72..36a6f661f94 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence.cpp
@@ -227,7 +227,7 @@ be_visitor_sequence_base_ch::visit_sequence (be_sequence *node)
// helper
int
-be_visitor_sequence_base_ch::visit_node (be_type * /* node */)
+be_visitor_sequence_base_ch::visit_node (be_type *)
{
TAO_OutStream &os = this->stream ();
os << this->current_type_->nested_type_name (this->seq_scope ());
@@ -235,7 +235,7 @@ be_visitor_sequence_base_ch::visit_node (be_type * /* node */)
}
int
-be_visitor_sequence_base_ch::visit_interface (be_interface * /* node */)
+be_visitor_sequence_base_ch::visit_interface (be_interface *)
{
TAO_OutStream &os = this->stream ();
os << this->current_type_->nested_type_name (this->seq_scope ());
@@ -243,7 +243,7 @@ be_visitor_sequence_base_ch::visit_interface (be_interface * /* node */)
}
int
-be_visitor_sequence_base_ch::visit_interface_fwd (be_interface_fwd *node)
+be_visitor_sequence_base_ch::visit_interface_fwd (be_interface_fwd *)
{
TAO_OutStream &os = this->stream ();
os << this->current_type_->nested_type_name (this->seq_scope ());
@@ -251,7 +251,7 @@ be_visitor_sequence_base_ch::visit_interface_fwd (be_interface_fwd *node)
}
int
-be_visitor_sequence_base_ch::visit_string (be_string * /* node */)
+be_visitor_sequence_base_ch::visit_string (be_string * )
{
// NO-OP, we have ad-hoc classes from strings.
return 0;
@@ -342,7 +342,7 @@ be_visitor_sequence_elemtype::visit_sequence (be_sequence *node)
// helper
int
-be_visitor_sequence_elemtype::visit_node (be_type *node)
+be_visitor_sequence_elemtype::visit_node (be_type *)
{
TAO_OutStream &os = this->stream ();
@@ -354,7 +354,7 @@ be_visitor_sequence_elemtype::visit_node (be_type *node)
}
int
-be_visitor_sequence_elemtype::visit_interface (be_interface *node)
+be_visitor_sequence_elemtype::visit_interface (be_interface *)
{
TAO_OutStream &os = this->stream ();
@@ -366,7 +366,7 @@ be_visitor_sequence_elemtype::visit_interface (be_interface *node)
}
int
-be_visitor_sequence_elemtype::visit_interface_fwd (be_interface_fwd *node)
+be_visitor_sequence_elemtype::visit_interface_fwd (be_interface_fwd *)
{
TAO_OutStream &os = this->stream ();
@@ -378,7 +378,7 @@ be_visitor_sequence_elemtype::visit_interface_fwd (be_interface_fwd *node)
}
int
-be_visitor_sequence_elemtype::visit_string (be_string * /*node*/)
+be_visitor_sequence_elemtype::visit_string (be_string *)
{
TAO_OutStream &os = this->stream ();
diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h
index 24536da765d..e8b58e4f468 100644
--- a/TAO/TAO_IDL/be_include/be_interface.h
+++ b/TAO/TAO_IDL/be_include/be_interface.h
@@ -118,9 +118,12 @@ public:
TAO_OutStream *os);
// template method using breadth first traversal of inheritance graph
- char *relative_skel_name (const char *);
+ const char *relative_skel_name (const char *other_class_name);
// relative skeleton name
+ const char *relative_coll_name (const char *other_class_name);
+ // relative name for collocated class.
+
// Visiting
virtual int accept (be_visitor *visitor);
@@ -157,6 +160,10 @@ private:
int gen_operation_table (void);
// generate the operation table including entries for inherited interfaces
+ static const char *relative_name (const char* our_name,
+ const char *other_class_name);
+ // relative name for collocated class.
+
int gen_optable_entries (be_interface *);
// generate the operation table entries