summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp
index 42ea71e737f..f071ec9b803 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_collocated_ss.cpp
@@ -121,8 +121,21 @@ int be_visitor_interface_direct_collocated_ss::visit_interface (be_interface *no
<< be_nl
<< "if (result != 0)" << be_nl
<< " return result;" << be_nl;
- *os << "return this->" << node->name ()
- << "::_tao_QueryInterface (type);" << be_uidt_nl
+ *os << "return this->";
+ if (!node->is_nested ())
+ {
+ *os << node->name ();
+ }
+ else
+ {
+ be_decl* scope =
+ be_scope::narrow_from_scope (node->defined_in ())->decl ();
+ *os << "ACE_NESTED_CLASS ("
+ << scope->name () << ","
+ << node->local_name ()
+ << ")";
+ }
+ *os << "::_tao_QueryInterface (type);" << be_uidt_nl
<< "}\n" << be_nl;
// Generate _get_servant implementation.