summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
index be617ef34ce..3b5b49c5b59 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
@@ -97,6 +97,10 @@ be_visitor_interface_direct_proxy_impl_ss::gen_abstract_ops_helper (
UTL_ScopedName *base = (UTL_ScopedName *)node->name ()->copy ();
base->nconc (item_new_name);
+ // 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);
@@ -104,7 +108,7 @@ be_visitor_interface_direct_proxy_impl_ss::gen_abstract_ops_helper (
op->flags (),
0,
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);