diff options
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.cpp | 6 |
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); |