summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-09-16 15:13:27 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-09-16 15:13:27 +0000
commitc9b938062aae9c664f08f85c0bd0dd4213b59325 (patch)
treeb08048acf2bb180f9bb07f11b13b5bbe8f083b04
parent1625baba0ffe8cf3a825acc311341b5adab0f345 (diff)
downloadATCD-c9b938062aae9c664f08f85c0bd0dd4213b59325.tar.gz
ChangeLogTag: Thu Sep 16 10:09:20 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog12
-rw-r--r--TAO/TAO_IDL/util/utl_scope.cpp8
2 files changed, 18 insertions, 2 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index b52d4d0c3f9..9f69df84f57 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,15 @@
+Thu Sep 16 10:09:20 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/util/utl_scope.cpp (lookup_by_name_local):
+
+ Reverted inadvertent checkin that changed the scope iterator
+ instantiation parameters, and added a comment about why it
+ needs to be the way it is (for lookup of sequence parameter
+ in the deprecated declaration of a recursive type using an
+ anonymous sequence). Thanks to Johnny Willemsen
+ <jwillemsen@rememdy.nl> for reporting the problem in union.idl
+ of IDL_Test, which contains such a recursive union.
+
Thu Sep 16 09:28:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
* orbsvcs/orbsvcs/PortableGroup/MIOP.cpp:
diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp
index ddd109073fc..083cb626c64 100644
--- a/TAO/TAO_IDL/util/utl_scope.cpp
+++ b/TAO/TAO_IDL/util/utl_scope.cpp
@@ -1620,8 +1620,12 @@ UTL_Scope::lookup_by_name_local (Identifier *e,
idl_bool in_corba =
ACE_OS::strcmp (e->get_string (), "CORBA") == 0;
- // Iterate over this scope.
- for (UTL_ScopeActiveIterator i (this, UTL_Scope::IK_decls);
+ // Iterate over this scope. We need IK_both here for the legacy
+ // case where a recursive type is defined via an anonymous sequence.
+ // Looking up the anonymous sequence parameter succeeds only if
+ // references are included, since the decl for the (unfinished)
+ // enclosing type has not yet been added to the scope decls.
+ for (UTL_ScopeActiveIterator i (this, UTL_Scope::IK_both);
!i.is_done ();
i.next ())
{