< prev index next >

src/hotspot/share/utilities/constantTag.cpp

Print this page
rev 52749 : Bootstrap method consolidation
* clean up and simplify JDK support code for BSM invocation
* simplify JVM bootstrap handshake: use BootstrapCallInfo only
* remove unused JVM paths and data fields
* move bootstrap argument processing from MethodHandleNatives to ConstantPool
* remove ConstantGroup; merge argument access into BootstrapCallInfo
* adjust BSM argument access: remove copyArguments, add argumentRef API
* add metadata-free BSM modes, including symbolic arguments from CP

*** 66,75 **** --- 66,100 ---- return T_ILLEGAL; } } + // value as specified in the classfile format + jbyte constantTag::classfile_value() const { + switch (_tag) { + case JVM_CONSTANT_ClassIndex: + case JVM_CONSTANT_UnresolvedClass: + case JVM_CONSTANT_UnresolvedClassInError: + return JVM_CONSTANT_Class; + case JVM_CONSTANT_StringIndex: + return JVM_CONSTANT_String; + case JVM_CONSTANT_MethodHandleInError: + return JVM_CONSTANT_MethodHandle; + case JVM_CONSTANT_MethodTypeInError: + return JVM_CONSTANT_MethodType; + case JVM_CONSTANT_DynamicInError: + return JVM_CONSTANT_Dynamic; + default: + // Return a zero tag for a gap after Long or Double, + // even though that doesn't exactly appear in a classfile. + assert(_tag >= 0 && _tag <= JVM_CONSTANT_ExternalMax, + "cannot interpret tag %d as a standard classfile tag", _tag); + return _tag; + } + } + + jbyte constantTag::non_error_value() const { switch (_tag) { case JVM_CONSTANT_UnresolvedClassInError: return JVM_CONSTANT_UnresolvedClass; case JVM_CONSTANT_MethodHandleInError:
< prev index next >