hotspot/src/share/vm/ci/ciField.hpp
changeset 4567 7fc02fbe5c7a
parent 670 ddf3e9583f2f
child 5547 f4b087cbb361
--- a/hotspot/src/share/vm/ci/ciField.hpp	Tue Jan 05 13:05:58 2010 +0100
+++ b/hotspot/src/share/vm/ci/ciField.hpp	Tue Jan 05 15:21:25 2010 +0100
@@ -138,10 +138,18 @@
 
   // Get the constant value of this field.
   ciConstant constant_value() {
-    assert(is_constant(), "illegal call to constant_value()");
+    assert(is_static() && is_constant(), "illegal call to constant_value()");
     return _constant_value;
   }
 
+  // Get the constant value of non-static final field in the given
+  // object.
+  ciConstant constant_value_of(ciObject* object) {
+    assert(!is_static() && is_constant(), "only if field is non-static constant");
+    assert(object->is_instance(), "must be instance");
+    return object->as_instance()->field_value(this);
+  }
+
   // Check for link time errors.  Accessing a field from a
   // certain class via a certain bytecode may or may not be legal.
   // This call checks to see if an exception may be raised by