summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-09-01 18:48:06 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-09-01 18:48:06 +0000
commitfc6d932f321c1bf5a62c6ccd60154ed744310f3c (patch)
tree1a019cb7a2ef2902def414be759a9db0664890f7
parent569d2b2dd04cf73194dc6d14cfe17a8dde88cb12 (diff)
downloadATCD-fc6d932f321c1bf5a62c6ccd60154ed744310f3c.tar.gz
ChangeLogTag: Mon Sep 1 13:41:47 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog_ref4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp11
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp3
3 files changed, 13 insertions, 5 deletions
diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref
index 6d10c6007fa..9e3e04e998f 100644
--- a/TAO/ChangeLog_ref
+++ b/TAO/ChangeLog_ref
@@ -5,6 +5,10 @@ Mon Sep 1 13:41:47 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
Added generation of forward declaration for the TAO::Narrow_Utils
template class.
+ * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
+
+ Fixed code generation of _narrow() for local interfaces.
+
Mon Sep 1 13:26:03 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
* tao/Sync_Strategies.h: Removed Transport.h inclusion
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 00e6edb5293..43b547502fd 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
@@ -266,11 +266,14 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
if (node->is_local ())
{
- *os << node->local_name () << "_ptr proxy =" << be_idt_nl
+ *os << "if (CORBA::is_nil (_tao_objref))" << be_idt_nl
+ << "{" << be_idt_nl
+ << "return " << node->local_name () << "::_nil ();" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << node->local_name () << "_ptr proxy =" << be_idt_nl
<< "dynamic_cast<" << node->local_name () << "_ptr> (_tao_objref);"
- << be_uidt_nl
- << "proxy->_add_ref ();" << be_nl
- << "return proxy;" << be_uidt_nl
+ << be_uidt_nl << be_nl
+ << "return " << node->local_name () << "::_duplicate (proxy);" << be_uidt_nl
<< "}" << be_nl << be_nl;
}
else
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp
index 4eb2af89c37..80669b32963 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp
@@ -65,7 +65,8 @@ be_visitor_root_ch::init (void)
*os << be_nl << be_nl
<< "namespace TAO" << be_nl
<< "{" << be_idt_nl
- << "class Collocation_Proxy_Broker;" << be_uidt_nl
+ << "class Collocation_Proxy_Broker;" << be_nl << be_nl
+ << "template<typename T> class Narrow_Utils;" << be_uidt_nl
<< "}";
}