summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
index de19dd9e8d3..b5826f85749 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
@@ -18,8 +18,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_operation,
- operation_cs,
+ACE_RCSID (be_visitor_operation,
+ operation_cs,
"$Id$")
// ************************************************************
@@ -169,6 +169,15 @@ be_visitor_operation_cs::visit_operation (be_operation *node)
}
}
+ // If the object is lazily evaluated the proxy brker might well
+ // be null. Initialize it now
+ *os << "if (!this->is_evaluated ())" << be_idt_nl
+ << "{" << be_idt_nl
+ << "ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this);" << be_nl
+ << "this->" << intf->flat_name ()
+ << "_setup_collocation (this->_is_collocated ());" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl;
+
// Generate code that retrieves the proper proxy implementation
// using the proxy broker available, and perform the call
// using the proxy implementation provided by the broker.