diff options
author | bala <balanatarajan@users.noreply.github.com> | 2003-03-19 22:06:32 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2003-03-19 22:06:32 +0000 |
commit | d0cc3aa6a6daec11b026422676b2785ddfa759de (patch) | |
tree | 386157a05914e4670ef03a449e0eb5e13f2da8b0 | |
parent | 1af945a97442437d2afa397ee3c3090dac47752e (diff) | |
download | ATCD-d0cc3aa6a6daec11b026422676b2785ddfa759de.tar.gz |
ChangeLogTag: Sat Feb 22 09:50:31 2003 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp | 17 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp | 5 | ||||
-rw-r--r-- | TAO/tao/ChangeLog | 13 |
3 files changed, 33 insertions, 2 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp index aa9b24ce25c..697953840fc 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp @@ -441,6 +441,7 @@ be_visitor_component_cs::gen_unchecked_narrow (be_component *node, be_type *bt, TAO_OutStream *os) { + // This part of the code is not formatted right. .. *os << node->full_name () << "_ptr " << be_nl << node->full_name () << "::_unchecked_narrow (" << be_idt << be_idt_nl @@ -453,6 +454,8 @@ be_visitor_component_cs::gen_unchecked_narrow (be_component *node, << "return " << bt->nested_type_name (this->ctx_->scope ()) << "::_nil ();" << be_uidt_nl << "}" << be_uidt_nl << be_nl + << "if (obj->is_evaluated ())" << be_idt_nl + << "{" << "TAO_Stub* stub = obj->_stubobj ();" << be_nl << be_nl << "if (stub != 0)" << be_idt_nl << "{" << be_idt_nl @@ -517,4 +520,18 @@ be_visitor_component_cs::gen_unchecked_narrow (be_component *node, } *os << "}" << be_nl << be_nl; + + // Lazily evaluated IOR + *os << "return" << be_idt_nl + << "ACE_reinterpret_cast (" << be_idt << be_idt_nl + << node->local_name () << "_ptr," << be_nl + << "obj->_tao_QueryInterface (" << be_idt << be_idt_nl + << "ACE_reinterpret_cast (" << be_idt << be_idt_nl + << "ptr_arith_t," << be_nl + << "&" << node->local_name () << "::_tao_class_id" << be_uidt_nl + << ")" << be_uidt << be_uidt_nl + << ")" << be_uidt << be_uidt_nl + << ");" << be_uidt << be_uidt << be_uidt << be_uidt_nl; + + *os << "}" << be_nl << be_nl; } 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 c28edd70da9..f864979a317 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp @@ -752,7 +752,8 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node, if (! node->is_local ()) { // Remote _unchecked_narrow implementation. - *os << "if (! obj->_is_local ())" << be_idt_nl + *os << "if (! obj->_is_local () &&" << be_idt_nl + << "obj->is_evaluated ())" << be_idt_nl << "{" << be_idt_nl << "TAO_Stub* stub = obj->_stubobj ();" << be_nl << be_nl << "if (stub != 0)" << be_idt_nl @@ -825,7 +826,7 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node, *os << be_idt; } - // Local _unchecked_narrow. + // Local & lazily evaluated _unchecked_narrow. *os << "return" << be_idt_nl << "ACE_reinterpret_cast (" << be_idt << be_idt_nl << node->local_name () << "_ptr," << be_nl diff --git a/TAO/tao/ChangeLog b/TAO/tao/ChangeLog index b7f20531e91..30c35a01a37 100644 --- a/TAO/tao/ChangeLog +++ b/TAO/tao/ChangeLog @@ -1,3 +1,16 @@ +Wed Mar 19 16:05:11 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> + + * TAO_IDL/be/be_visitor_component/component_cs.cpp:Added a check + for is_evaluated () before creating a new CORBA::Object () in + _unchecked_narrow (). If the call is_evaluated fails, we just + reinterpret cat the CORBA::Object to the right type of object. + +Wed Mar 19 15:35:16 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> + + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: Added a check + for is_evaluated () along with _is_local () before creating a + new CORBA::Object () in _unchecked_narrow (). + Wed Mar 19 14:30:43 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> * tao/Connector_Registry.cpp: Removed preconnect () completely |