diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2002-07-24 12:43:09 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2002-07-24 12:43:09 +0000 |
commit | 18bb8fa86691884be5c3831e6cea3ee21d99125d (patch) | |
tree | 47e81e0b9de49a39fca0a71692f350a751237c35 | |
parent | 836a18342f99473db2828c519450435b09716598 (diff) | |
download | ATCD-18bb8fa86691884be5c3831e6cea3ee21d99125d.tar.gz |
ChangeLogTag: Wed Jul 24 07:42:47 2002 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r-- | TAO/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/TAO_IDL/util/utl_scope.cpp | 19 |
2 files changed, 20 insertions, 8 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 71bb22cdbce..5a8aefa565e 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Wed Jul 24 07:42:47 2002 Chad Elliott <elliott_c@ociweb.com> + + * TAO_IDL/util/utl_scope.cpp: + + Allocate the UTL_ScopeActiveIterator object on the heap instead of + the stack. This worked for most compilers (but it shouldn't + have) except for KCC on Solaris. Thanks to Tim Bradley + (bradley_t@ociweb.com) for finding this and providing a fix. + Tue Jul 23 16:10:08 2002 Ossama Othman <ossama@uci.edu> * orbsvcs/orbsvcs/PortableGroup/PG_GenericFactory.cpp diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp index a90244c9ae6..9f43e24fc0e 100644 --- a/TAO/TAO_IDL/util/utl_scope.cpp +++ b/TAO/TAO_IDL/util/utl_scope.cpp @@ -1157,10 +1157,11 @@ UTL_Scope::lookup_pseudo (Identifier *e) || ACE_OS::strcmp (name_string, "ValueBase") == 0) { // Iterate over the global scope. - UTL_ScopeActiveIterator global_iter (idl_global->scopes ().bottom (), - UTL_Scope::IK_decls); - - i = &global_iter; + ACE_NEW_RETURN (i, + UTL_ScopeActiveIterator ( + idl_global->scopes ().bottom (), + UTL_Scope::IK_decls), + 0); } else if (ACE_OS::strcmp (name_string, "TypeCode") == 0 || ACE_OS::strcmp (name_string, "TCKind") == 0) @@ -1169,10 +1170,10 @@ UTL_Scope::lookup_pseudo (Identifier *e) // scoped with "CORBA" so we know we'll be in the CORBA module // if we get this far, and we can use "this" for the scope of // the iterator. - UTL_ScopeActiveIterator corba_iter (this, - UTL_Scope::IK_decls); - - i = &corba_iter; + ACE_NEW_RETURN (i, + UTL_ScopeActiveIterator (this, + UTL_Scope::IK_decls), + 0); } else { @@ -1187,10 +1188,12 @@ UTL_Scope::lookup_pseudo (Identifier *e) if (e->compare (item_name)) { + delete i; return d; } } + delete i; return 0; } |