summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-22 05:02:28 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-22 05:02:28 +0000
commitc5a8b28534cba4ab70ea573432af43e67c54bf1e (patch)
treeaca4390da0d63d7db4155824b73150e84ccac607
parent71b48b7fcf1209760efc6e13f5b3b6cd01f0ab9a (diff)
downloadATCD-c5a8b28534cba4ab70ea573432af43e67c54bf1e.tar.gz
Try again.
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
index 4443ca6472d..c066be13f61 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
@@ -338,6 +338,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "{" << be_idt_nl
<< "TAO_Stub *stub = this->_create_stub (ACE_TRY_ENV);" << be_nl
<< "ACE_CHECK_RETURN (0);" << be_nl
+ << "if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ())" << be_idt_nl
<< "switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())" << be_idt_nl
<< "{" << be_nl
<< "case TAO_ORB_Core::THRU_POA:" << be_idt_nl;
@@ -360,6 +361,12 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
*os << "default:" << be_idt_nl
<< "ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);" << be_uidt_nl
<< "}" << be_uidt << be_uidt_nl
+ << "else" << be_idt_nl
+ << "{" << be_idt_nl
+ << "// stub->_incr_refcnt ();" << be_nl
+ << "CORBA::Object_var obj = new CORBA::Object (stub);" << be_nl
+ << "return " << node->name () << "::_unchecked_narrow (obj);" << be_uidt_nl
+ << "}" << be_uidt << be_uidt_nl
<< "}\n\n";
// the _create_collocated_objref method. If the idl compiler does