summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_interface.cpp
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-04-16 18:30:18 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-04-16 18:30:18 +0000
commit15eddf33c77f515d000d3a13d37ef1bd70cf29be (patch)
tree9de7bf75388d3536d6d6240dfd1a87eb825ad2d9 /TAO/TAO_IDL/be/be_visitor_interface.cpp
parent92e640e82c72a321ade2c816b5946cca5dfd0153 (diff)
downloadATCD-15eddf33c77f515d000d3a13d37ef1bd70cf29be.tar.gz
ChangeLogTag:Thu Apr 16 13:28:59 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface.cpp59
1 files changed, 31 insertions, 28 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp
index b8f13291a1d..9606fbbf8a5 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp
@@ -1756,20 +1756,22 @@ int be_visitor_interface_collocated_ss::visit_interface (be_interface *node)
os->decr_indent (0);
os->incr_indent ();
-#if defined (ACE_WIN32)
- // @@ TODO MSVC++ compiler has some kind of issue (read
- // *bug*) wrt nested classes in constructors, if the fully
- // qualified name is used it gets all confused. Quite to my
- // dismay the work around is to use a non-qualified name for
- // the base class!
- // I wish I never have to know why the symbol table for
- // MSVC++ can get so confused ;-) (coryan)
- *os << ": " << node->local_name ()
- << " (stub, servant, CORBA::B_TRUE)," << be_nl;
-#else
- *os << ": " << node->name ()
- << " (stub, servant, CORBA::B_TRUE)," << be_nl;
-#endif /* ACE_WIN32 */
+
+ if (node->defined_in ())
+ {
+ be_decl* scope =
+ be_scope::narrow_from_scope (node->defined_in())->decl ();
+
+ *os << ": ACE_NESTED_CLASS ("
+ << scope->name () << ","
+ << node->local_name ()
+ << ") (servant, stub, CORBA::B_TRUE)," << be_nl;
+ }
+ else
+ {
+ *os << ": " << node->name ()
+ << " (servant, stub, CORBA::B_TRUE)," << be_nl;
+ }
// @@ We should call the constructor for all base classes, since we
// are using multiple inheritance.
@@ -1780,20 +1782,21 @@ int be_visitor_interface_collocated_ss::visit_interface (be_interface *node)
{
be_interface* parent =
be_interface::narrow_from_decl (node->inherits()[i]);
-#if defined (ACE_WIN32)
- // @@ TODO MSVC++ compiler has some kind of issue (read
- // *bug*) wrt nested classes in constructors, if the fully
- // qualified name is used it gets all confused. Quite to my
- // dismay the work around is to use a non-qualified name for
- // the base class!
- // I wish I never have to know why the symbol table for
- // MSVC++ can get so confused ;-) (coryan)
- *os << " " << parent->local_coll_name () << " (servant, stub),"
- << be_nl;
-#else
- *os << " " << parent->full_coll_name () << " (servant, stub),"
- << be_nl;
-#endif /* ACE_WIN32 */
+ if (parent->defined_in ())
+ {
+ be_decl* scope =
+ be_scope::narrow_from_scope (parent->defined_in())->decl ();
+
+ *os << " ACE_NESTED_CLASS ("
+ << scope->name () << ","
+ << parent->local_coll_name ()
+ << ") (servant, stub)," << be_nl;
+ }
+ else
+ {
+ *os << " " << parent->full_coll_name ()
+ << " (servant, stub)," << be_nl;
+ }
}
}