From 4d115dfab0435c66776898c9fe6ca1f4758b3f03 Mon Sep 17 00:00:00 2001 From: coryan Date: Thu, 22 Jan 1998 22:58:15 +0000 Subject: ChangeLogTag:Thu Jan 22 16:56:32 1998 Carlos O'Ryan --- TAO/ChangeLog-98c | 12 ++++++++++++ TAO/TAO_IDL/be/be_interface.cpp | 31 +++++++++++++++++++++++-------- TAO/TAO_IDL/be/be_visitor_args.cpp | 6 +++--- TAO/TAO_IDL/be/be_visitor_interface.cpp | 3 ++- TAO/TAO_IDL/be/be_visitor_root.cpp | 10 +++++----- TAO/TAO_IDL/be/be_visitor_sequence.cpp | 16 ++++++++-------- TAO/TAO_IDL/be_include/be_interface.h | 9 ++++++++- 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 + + * 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 * 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 -- cgit v1.2.1