diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-09-03 18:02:54 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-09-03 18:02:54 +0000 |
commit | aa618ef0ab86b0bfa834cd5843d7ee2193e0eac5 (patch) | |
tree | 91eee988dd2fe9f23d89f314729427b8598655bf | |
parent | d7511ccd7164912f9d09c54948800830cbb313f5 (diff) | |
download | ATCD-aa618ef0ab86b0bfa834cd5843d7ee2193e0eac5.tar.gz |
ChangeLogTag: Thu Sep 3 18:01:14 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | modules/TAO/ChangeLog | 8 | ||||
-rw-r--r-- | modules/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/modules/TAO/ChangeLog b/modules/TAO/ChangeLog index e0dcb3f083d..fe2081b4e6a 100644 --- a/modules/TAO/ChangeLog +++ b/modules/TAO/ChangeLog @@ -1,3 +1,11 @@ +Thu Sep 3 18:01:14 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu> + + * orbsvcs/IFR_Service/ifr_adding_visitor.cpp: + + Fixed bug in component attribute visitation that left the + visitor state incorrect for further processing of the + component's scope. + Thu Sep 3 16:28:17 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu> * orbsvcs/IFR_Service/ifr_adding_visitor.h: diff --git a/modules/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp b/modules/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp index 5ff00e33ddb..c0f07373932 100644 --- a/modules/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp +++ b/modules/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp @@ -1917,9 +1917,15 @@ ifr_adding_visitor::visit_field (AST_Field *node) int ifr_adding_visitor::visit_attribute (AST_Attribute *node) { + ::CORBA::IDLType_var holder; + try { AST_Type *type = node->field_type (); + + // Save to be replaced later. + holder = + ::CORBA::IDLType::_duplicate (this->ir_current_.in ()); // Updates ir_current_. this->get_referenced_type (type); @@ -1995,6 +2001,10 @@ ifr_adding_visitor::visit_attribute (AST_Attribute *node) return -1; } + + // Restore entry of component or interface. + this->ir_current_ = + ::CORBA::IDLType::_duplicate (holder.in ()); return 0; } |