summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-31 04:13:17 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-31 04:13:17 +0000
commit66fcbcbb25d9eb0f9247a4e06e72699418ed27a6 (patch)
treefb70715054a714c186c097f0f1d93d45f49c7a03
parentd2a8b0c0ee1be7e8d349c3d903df362981874944 (diff)
downloadATCD-66fcbcbb25d9eb0f9247a4e06e72699418ed27a6.tar.gz
ChangeLogTag: Thu Oct 30 22:09:17 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog11
-rw-r--r--TAO/TAO_IDL/be/be_visitor_traits.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp10
3 files changed, 24 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 107759f3d3c..734dfca008d 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,14 @@
+Thu Oct 30 22:09:17 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_visitor_traits.cpp:
+ * TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp:
+
+ Added tao_release() to the generated Value_Traits<> specialization,
+ so the INOUT argument template helper class can release the argument
+ at demarshal time with the same call for both interface and
+ valuetypes. This extra method has already been added to
+ CORBA::ValueBase.
+
Thu Oct 30 15:01:43 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
* orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp:
diff --git a/TAO/TAO_IDL/be/be_visitor_traits.cpp b/TAO/TAO_IDL/be/be_visitor_traits.cpp
index c019c8468fc..3e9f6341fe2 100644
--- a/TAO/TAO_IDL/be/be_visitor_traits.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_traits.cpp
@@ -181,7 +181,9 @@ be_visitor_traits::visit_valuetype (be_valuetype *node)
<< node->name () << ">" << be_nl
<< "{" << be_idt_nl
<< "static void tao_add_ref (" << node->name () << " *);" << be_nl
- << "static void tao_remove_ref (" << node->name () << " *);"
+ << "static void tao_remove_ref (" << node->name () << " *);"
+ << be_nl
+ << "static void tao_release (" << node->name () << " *);"
<< be_uidt_nl
<< "};";
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp
index e6cc0c561e9..891a40b17b4 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp
@@ -86,6 +86,16 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
<< "{" << be_idt_nl
<< "CORBA::remove_ref (p);" << be_uidt_nl
<< "}";
+
+ *os << be_nl << be_nl
+ << "void" << be_nl
+ << "TAO::Value_Traits<" << node->name () << ">::tao_release ("
+ << be_idt << be_idt_nl
+ << node->name () << " * p" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "CORBA::remove_ref (p);" << be_uidt_nl
+ << "}";
}
// The _downcast method // %! use ACE_xxx_cast here ?