diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-11 22:10:31 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-11 22:10:31 +0000 |
commit | 8209476b6ead1d9f4a62f28ccb589434508af379 (patch) | |
tree | 9319d91acd4442f62e596b6172ca40e36a575de4 | |
parent | dfff779c0c1168a91eb6bc04cbfe83587d27331c (diff) | |
download | ATCD-8209476b6ead1d9f4a62f28ccb589434508af379.tar.gz |
ChangeLogTag:Sun Oct 11 17:09:16 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog-98c | 7 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp | 28 |
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) |