From 79c0b76de818b5d23731c04551f75635ac1466e7 Mon Sep 17 00:00:00 2001 From: kvn Date: Fri, 23 Jul 2010 10:07:46 -0700 Subject: [PATCH] 6969569: assert(is_static() && is_constant()) failed: illegal call to constant_value() Summary: Add missing is_static guard. Reviewed-by: twisti --- src/share/vm/ci/ciField.cpp | 2 +- src/share/vm/opto/macro.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/share/vm/ci/ciField.cpp b/src/share/vm/ci/ciField.cpp index 2729d32d2..9851d9e25 100644 --- a/src/share/vm/ci/ciField.cpp +++ b/src/share/vm/ci/ciField.cpp @@ -339,7 +339,7 @@ void ciField::print() { if (_type != NULL) _type->print_name(); else tty->print("(reference)"); tty->print(" is_constant=%s", bool_to_str(_is_constant)); - if (_is_constant) { + if (_is_constant && is_static()) { tty->print(" constant_value="); _constant_value.print(); } diff --git a/src/share/vm/opto/macro.cpp b/src/share/vm/opto/macro.cpp index 343173167..214c3150e 100644 --- a/src/share/vm/opto/macro.cpp +++ b/src/share/vm/opto/macro.cpp @@ -720,7 +720,7 @@ bool PhaseMacroExpand::scalar_replacement(AllocateNode *alloc, GrowableArray is_loaded()) { field_type = TypeInstPtr::BOTTOM; - } else if (field != NULL && field->is_constant()) { + } else if (field != NULL && field->is_constant() && field->is_static()) { // This can happen if the constant oop is non-perm. ciObject* con = field->constant_value().as_object(); // Do not "join" in the previous type; it doesn't add value, -- GitLab