diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-06-16 20:32:33 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-06-16 20:32:33 +0000 |
commit | 997c4a4fdab5296b8affc900e5d1c215b86806ae (patch) | |
tree | 63185b06149cd7438ff25c61b3541e439e0bd1e1 | |
parent | f344329841bda3496bce08e7a0e28f81a2face73 (diff) | |
download | ATCD-997c4a4fdab5296b8affc900e5d1c215b86806ae.tar.gz |
ChangeLogTag: Fri Jun 16 20:25:45 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 15 | ||||
-rw-r--r-- | TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp | 3 |
3 files changed, 19 insertions, 2 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 67b3ab857be..4b247f1a975 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,18 @@ +Fri Jun 16 20:25:45 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/IFR_Service/ifr_adding_visitor.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp: + + Added CORBA::string_dup() around the identifier string of + an argument, when it is inserted into the sequence of + parameter descriptions that is passed to the IFR to make + an entry for an operation or a factory. Since the + sequence in question manages its own memory, we were + getting double deletions of this identifier string before. + Thanks to Johnny Willemsen <jwillemsen@remedy.nl> for + pointing out the Interface Repository tests failures + causes by this problem. + Fri Jun 16 14:29:23 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu> * TAO_IDL/fe/fe_interface_header.cpp: diff --git a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp index 6037b5f477f..31f082877d2 100644 --- a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp +++ b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp @@ -4021,7 +4021,8 @@ ifr_adding_visitor::fill_initializers (CORBA::ExtInitializerSeq &result, for (CORBA::ULong i = 0; i < n_factories; ++i) { - result[i].name = factories[i]->local_name ()->get_string (); + result[i].name = + CORBA::string_dup (factories[i]->local_name ()->get_string ()); n_args = static_cast<CORBA::ULong> (factories[i]->argument_count ()); result[i].members.length (n_args); diff --git a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp index 1a3972ea18c..63ff0eaefbf 100644 --- a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp +++ b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp @@ -228,7 +228,8 @@ int ifr_adding_visitor_operation::visit_argument (AST_Argument *node) { // Get the parameter's name. - this->params_[this->index_].name = node->local_name ()->get_string (); + this->params_[this->index_].name = + CORBA::string_dup (node->local_name ()->get_string ()); AST_Type *arg_type = node->field_type (); |