comparison src/share/vm/oops/constantPool.cpp @ 9088:89e4d67fdd2a

Merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Fri, 12 Apr 2013 14:05:42 +0200
parents b9a918201d47 cc32ccaaf47f
children 836a62f43af9
comparison
equal deleted inserted replaced
9037:b008f40b67d0 9088:89e4d67fdd2a
1376 #endif // PRODUCT 1376 #endif // PRODUCT
1377 1377
1378 1378
1379 // JVMTI GetConstantPool support 1379 // JVMTI GetConstantPool support
1380 1380
1381 // For temporary use until code is stable. 1381 // For debugging of constant pool
1382 #define DBG(code) 1382 const bool debug_cpool = false;
1383 1383
1384 static const char* WARN_MSG = "Must not be such entry!"; 1384 #define DBG(code) do { if (debug_cpool) { (code); } } while(0)
1385 1385
1386 static void print_cpool_bytes(jint cnt, u1 *bytes) { 1386 static void print_cpool_bytes(jint cnt, u1 *bytes) {
1387 const char* WARN_MSG = "Must not be such entry!";
1387 jint size = 0; 1388 jint size = 0;
1388 u2 idx1, idx2; 1389 u2 idx1, idx2;
1389 1390
1390 for (jint idx = 1; idx < cnt; idx++) { 1391 for (jint idx = 1; idx < cnt; idx++) {
1391 jint ent_size = 0; 1392 jint ent_size = 0;
1667 *bytes = JVM_CONSTANT_String; 1668 *bytes = JVM_CONSTANT_String;
1668 Symbol* sym = unresolved_string_at(idx); 1669 Symbol* sym = unresolved_string_at(idx);
1669 idx1 = tbl->symbol_to_value(sym); 1670 idx1 = tbl->symbol_to_value(sym);
1670 assert(idx1 != 0, "Have not found a hashtable entry"); 1671 assert(idx1 != 0, "Have not found a hashtable entry");
1671 Bytes::put_Java_u2((address) (bytes+1), idx1); 1672 Bytes::put_Java_u2((address) (bytes+1), idx1);
1672 DBG(char *str = sym->as_utf8()); 1673 DBG(printf("JVM_CONSTANT_String: idx=#%03hd, %s", idx1, sym->as_utf8()));
1673 DBG(printf("JVM_CONSTANT_String: idx=#%03hd, %s", idx1, str));
1674 break; 1674 break;
1675 } 1675 }
1676 case JVM_CONSTANT_Fieldref: 1676 case JVM_CONSTANT_Fieldref:
1677 case JVM_CONSTANT_Methodref: 1677 case JVM_CONSTANT_Methodref:
1678 case JVM_CONSTANT_InterfaceMethodref: { 1678 case JVM_CONSTANT_InterfaceMethodref: {
1742 1742
1743 // Keep temorarily for debugging until it's stable. 1743 // Keep temorarily for debugging until it's stable.
1744 DBG(print_cpool_bytes(cnt, start_bytes)); 1744 DBG(print_cpool_bytes(cnt, start_bytes));
1745 return (int)(bytes - start_bytes); 1745 return (int)(bytes - start_bytes);
1746 } /* end copy_cpool_bytes */ 1746 } /* end copy_cpool_bytes */
1747
1748 #undef DBG
1747 1749
1748 1750
1749 void ConstantPool::set_on_stack(const bool value) { 1751 void ConstantPool::set_on_stack(const bool value) {
1750 if (value) { 1752 if (value) {
1751 _flags |= _on_stack; 1753 _flags |= _on_stack;