summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-11 22:10:31 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-11 22:10:31 +0000
commit8209476b6ead1d9f4a62f28ccb589434508af379 (patch)
tree9319d91acd4442f62e596b6172ca40e36a575de4
parentdfff779c0c1168a91eb6bc04cbfe83587d27331c (diff)
downloadATCD-8209476b6ead1d9f4a62f28ccb589434508af379.tar.gz
ChangeLogTag:Sun Oct 11 17:09:16 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-98c7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp28
2 files changed, 18 insertions, 17 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index 90f079ad892..d8450189bd1 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,10 @@
+Sun Oct 11 17:09:16 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
+ Optimized _narrow() it does not need to call _create_stub() on
+ the collocated case, using the CORBA::Object stub is good
+ enough.
+
1998-10-11 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
* orbsvcs/Naming_Service/Naming_Service.h : change the order of
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
index 776e06e1593..624362423f8 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
@@ -81,23 +81,19 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< be_idt_nl
<< "return " << node->name () << "::_nil ();" << be_uidt_nl;
+ *os << "STUB_Object* stub = obj->_stubobj ();" << be_nl
+ << "stub->_incr_refcnt ();" << be_nl;
*os << "if (!obj->_is_collocated ()" << be_idt << be_idt << be_idt_nl
<< " || !obj->_servant()" << be_nl
<< " || obj->_servant()->_downcast (\""
<< node->repoID () << "\") == 0" << be_uidt_nl
<< ")" << be_uidt << be_uidt_nl
<< "{" << be_idt_nl;
- *os << "STUB_Object* stub = obj->_stubobj ();" << be_nl
- << "stub->_incr_refcnt ();" << be_nl;
- *os << node->name () << "_ptr new_obj = new "
- << node->name () << "(stub);" << be_nl
- << "return new_obj;" << be_uidt_nl
- << "} // end of if" << be_nl;
+ *os << "return new "
+ << node->name () << "(stub);" << be_uidt_nl
+ << "}" << be_nl;
- *os << "STUB_Object *stub = obj->_servant ()->_create_stub (env);" << be_nl
- << "if (env.exception () != 0)" << be_idt_nl
- << "return " << node->name () << "::_nil ();" << be_uidt_nl
- << "void* servant = obj->_servant ()->_downcast (\""
+ *os << "void* servant = obj->_servant ()->_downcast (\""
<< node->repoID () << "\");" << be_nl
<< "return new ";
@@ -114,13 +110,11 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "}" << be_nl << be_nl;
// _nil method
- *os << node->name () << "_ptr " << node->name () << "::_nil (void)" <<
- be_nl;
- *os << "{\n";
- os->incr_indent ();
- *os << "return (" << node->name () << "_ptr)NULL;\n";
- os->decr_indent ();
- *os << "} // end of _nil" << be_nl << be_nl;
+ *os << node->name () << "_ptr "
+ << node->name () << "::_nil (void)" << be_nl
+ << "{" << be_idt_nl
+ << "return (" << node->name () << "_ptr)0;" << be_uidt_nl
+ << "}" << be_nl << be_nl;
// generate code for the elements of the interface
if (this->visit_scope (node) == -1)