summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
index b6863cc1822..18306c84602 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
@@ -157,6 +157,10 @@ be_visitor_interface_direct_proxy_impl_sh::gen_abstract_ops_helper (
UTL_ScopedName item_new_name (d->local_name (),
0);
+ // We pass the node's is_abstract flag to the operation
+ // constructor so we will get the right generated operation
+ // body if we are regenerating an operation from an
+ // abstract interface in a concrete interface or component.
if (d->node_type () == AST_Decl::NT_op)
{
AST_Operation *op = AST_Operation::narrow_from_decl (d);
@@ -164,7 +168,7 @@ be_visitor_interface_direct_proxy_impl_sh::gen_abstract_ops_helper (
op->flags (),
&item_new_name,
op->is_local (),
- op->is_abstract ());
+ node->is_abstract ());
new_op.set_defined_in (node);
be_visitor_interface::add_abstract_op_args (op,
new_op);