changeset 1664:0652d205acda

6969586: OptimizeStringConcat: SIGSEGV in LoadNode::Value() Reviewed-by: kvn
author never
date Mon, 30 Aug 2010 17:27:35 -0700
parents be2b508a60cb
children 04323991c395
files src/share/vm/opto/memnode.cpp
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.cpp	Fri Oct 08 11:07:14 2010 -0400
+++ b/src/share/vm/opto/memnode.cpp	Mon Aug 30 17:27:35 2010 -0700
@@ -1547,8 +1547,8 @@
         adr->is_AddP() && off != Type::OffsetBot) {
       // For constant Strings treat the fields as compile time constants.
       Node* base = adr->in(AddPNode::Base);
-      if (base->Opcode() == Op_ConP) {
-        const TypeOopPtr* t = phase->type(base)->isa_oopptr();
+      const TypeOopPtr* t = phase->type(base)->isa_oopptr();
+      if (t != NULL && t->singleton()) {
         ciObject* string = t->const_oop();
         ciConstant constant = string->as_instance()->field_value_by_offset(off);
         if (constant.basic_type() == T_INT) {