--- a/hotspot/src/share/vm/utilities/constantTag.hpp Mon Jun 07 14:17:01 2010 -0700
+++ b/hotspot/src/share/vm/utilities/constantTag.hpp Wed Jun 09 18:50:45 2010 -0700
@@ -78,13 +78,24 @@
bool is_field_or_method() const { return is_field() || is_method() || is_interface_method(); }
bool is_symbol() const { return is_utf8(); }
+ bool is_method_type() const { return _tag == JVM_CONSTANT_MethodType; }
+ bool is_method_handle() const { return _tag == JVM_CONSTANT_MethodHandle; }
+
+ constantTag() {
+ _tag = JVM_CONSTANT_Invalid;
+ }
constantTag(jbyte tag) {
assert((tag >= 0 && tag <= JVM_CONSTANT_NameAndType) ||
+ (tag >= JVM_CONSTANT_MethodHandle && tag <= JVM_CONSTANT_MethodType) ||
(tag >= JVM_CONSTANT_InternalMin && tag <= JVM_CONSTANT_InternalMax), "Invalid constant tag");
_tag = tag;
}
jbyte value() { return _tag; }
+ BasicType basic_type() const; // if used with ldc, what kind of value gets pushed?
+
+ const char* internal_name() const; // for error reporting
+
void print_on(outputStream* st) const PRODUCT_RETURN;
};