summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2002-07-24 12:43:09 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2002-07-24 12:43:09 +0000
commit18bb8fa86691884be5c3831e6cea3ee21d99125d (patch)
tree47e81e0b9de49a39fca0a71692f350a751237c35
parent836a18342f99473db2828c519450435b09716598 (diff)
downloadATCD-18bb8fa86691884be5c3831e6cea3ee21d99125d.tar.gz
ChangeLogTag: Wed Jul 24 07:42:47 2002 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--TAO/ChangeLog9
-rw-r--r--TAO/TAO_IDL/util/utl_scope.cpp19
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;
}