diff src/share/vm/opto/memnode.cpp @ 1826:56601ef83436

6916062: assert(_inserts <= _insert_limit,"hash table overflow") in NodeHash::hash_insert Summary: Missing check for not empty worklist when puting memory node back on worklist and expecting address type update. Reviewed-by: never
author kvn
date Thu, 30 Sep 2010 18:31:45 -0700
parents 5867d89c129b
children f95d63e2154a
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.cpp	Wed Sep 29 16:53:42 2010 -0700
+++ b/src/share/vm/opto/memnode.cpp	Thu Sep 30 18:31:45 2010 -0700
@@ -256,7 +256,8 @@
   if( t_adr == Type::TOP )              return NodeSentinel; // caller will return NULL
 
   if( can_reshape && igvn != NULL &&
-      (igvn->_worklist.member(address) || phase->type(address) != adr_type()) ) {
+      (igvn->_worklist.member(address) ||
+       igvn->_worklist.size() > 0 && (phase->type(address) != adr_type())) ) {
     // The address's base and type may change when the address is processed.
     // Delay this mem node transformation until the address is processed.
     phase->is_IterGVN()->_worklist.push(this);