constantPoolOop.cpp revision 1059
1879N/A# include "incls/_constantPoolOop.cpp.incl"
0N/A // Acquire lock on constant oop while doing update. After we get the lock, we check if another object
0N/A bool do_resolve = false;
0N/A do_resolve = true;
0N/A if (do_resolve) {
0N/A KlassHandle k;
0N/A if (!HAS_PENDING_EXCEPTION) {
0N/A if (HAS_PENDING_EXCEPTION) {
0N/A bool throw_orig_error = false;
0N/A if (!PENDING_EXCEPTION->
0N/A throw_orig_error = true;
0N/A if (throw_orig_error) {
0N/A if (do_resolve) {
0N/A if (HAS_PENDING_EXCEPTION) {
0N/AklassOop constantPoolOopDesc::klass_ref_at_if_loaded_check(constantPoolHandle this_oop, int index, TRAPS) {
2630N/A int signature_index = signature_ref_index_at(impl_name_and_type_ref_index_at(which, uncached));
0N/A return member_index;
0N/Avoid constantPoolOopDesc::verify_constant_pool_resolve(constantPoolHandle this_oop, KlassHandle k, TRAPS) {
return entry;
int which) {
int count = 0;
return count;
case JVM_CONSTANT_NameAndType:
case JVM_CONSTANT_Class:
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_Integer:
case JVM_CONSTANT_Float:
case JVM_CONSTANT_String:
case JVM_CONSTANT_Utf8:
case JVM_CONSTANT_Long:
case JVM_CONSTANT_Double:
++index;
case JVM_CONSTANT_NameAndType:
case JVM_CONSTANT_Class:
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_Integer:
case JVM_CONSTANT_Float:
case JVM_CONSTANT_String:
case JVM_CONSTANT_Utf8:
case JVM_CONSTANT_Long:
case JVM_CONSTANT_Double:
++index;
// that this style of checking will consider resolved/unresolved
// class pairs and resolved/unresolved string pairs as different.
switch (t1) {
case JVM_CONSTANT_Class:
case JVM_CONSTANT_ClassIndex:
if (match) {
case JVM_CONSTANT_Double:
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
if (match) {
if (match) {
case JVM_CONSTANT_Float:
case JVM_CONSTANT_Integer:
case JVM_CONSTANT_Long:
case JVM_CONSTANT_NameAndType:
if (match) {
if (match) {
case JVM_CONSTANT_String:
case JVM_CONSTANT_StringIndex:
if (match) {
case JVM_CONSTANT_Utf8:
case JVM_CONSTANT_Double:
case JVM_CONSTANT_Long:
src_i++;
dest_i++;
case JVM_CONSTANT_Class:
case JVM_CONSTANT_ClassIndex:
case JVM_CONSTANT_Double:
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Float:
case JVM_CONSTANT_Integer:
case JVM_CONSTANT_Long:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_NameAndType:
case JVM_CONSTANT_String:
case JVM_CONSTANT_StringIndex:
case JVM_CONSTANT_Utf8:
if (found) {
#ifndef PRODUCT
switch(tag) {
case JVM_CONSTANT_Invalid: {
case JVM_CONSTANT_Unicode: {
case JVM_CONSTANT_Utf8: {
case JVM_CONSTANT_Integer: {
case JVM_CONSTANT_Float: {
case JVM_CONSTANT_Long: {
case JVM_CONSTANT_Double: {
case JVM_CONSTANT_Class: {
case JVM_CONSTANT_String: {
case JVM_CONSTANT_Fieldref: {
case JVM_CONSTANT_Methodref: {
case JVM_CONSTANT_InterfaceMethodref: {
case JVM_CONSTANT_NameAndType: {
case JVM_CONSTANT_ClassIndex: {
case JVM_CONSTANT_UnresolvedClass: {
case JVM_CONSTANT_StringIndex: {
case JVM_CONSTANT_UnresolvedString: {
fflush(0);
case JVM_CONSTANT_Invalid:
case JVM_CONSTANT_Unicode:
case JVM_CONSTANT_Utf8:
case JVM_CONSTANT_Class:
case JVM_CONSTANT_String:
case JVM_CONSTANT_ClassIndex:
case JVM_CONSTANT_StringIndex:
case JVM_CONSTANT_Integer:
case JVM_CONSTANT_Float:
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_NameAndType:
case JVM_CONSTANT_Long:
case JVM_CONSTANT_Double:
switch(tag) {
case JVM_CONSTANT_Utf8: {
case JVM_CONSTANT_Class:
case JVM_CONSTANT_Long:
case JVM_CONSTANT_Double: {
return size;
unsigned char *bytes) {
switch(tag) {
case JVM_CONSTANT_Invalid: {
case JVM_CONSTANT_Unicode: {
case JVM_CONSTANT_Utf8: {
for (int i = 0; i < len; i++) {
case JVM_CONSTANT_Integer: {
case JVM_CONSTANT_Float: {
case JVM_CONSTANT_Long: {
case JVM_CONSTANT_Double: {
case JVM_CONSTANT_Class:
case JVM_CONSTANT_String: {
unsigned int hash;
idx1 = 0;
int length;
case JVM_CONSTANT_UnresolvedString: {
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_InterfaceMethodref: {
case JVM_CONSTANT_NameAndType: {
case JVM_CONSTANT_ClassIndex: {
case JVM_CONSTANT_StringIndex: {
return en;
return NULL;