summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-03-19 22:06:32 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-03-19 22:06:32 +0000
commitd0cc3aa6a6daec11b026422676b2785ddfa759de (patch)
tree386157a05914e4670ef03a449e0eb5e13f2da8b0
parent1af945a97442437d2afa397ee3c3090dac47752e (diff)
downloadATCD-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.cpp17
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp5
-rw-r--r--TAO/tao/ChangeLog13
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