1.1 --- a/src/share/vm/runtime/sharedRuntime.cpp Tue Jul 26 19:35:23 2011 -0700 1.2 +++ b/src/share/vm/runtime/sharedRuntime.cpp Wed Jul 27 15:06:35 2011 -0700 1.3 @@ -2130,9 +2130,9 @@ 1.4 public: 1.5 AdapterFingerPrint(int total_args_passed, BasicType* sig_bt) { 1.6 // The fingerprint is based on the BasicType signature encoded 1.7 - // into an array of ints with four entries per int. 1.8 + // into an array of ints with eight entries per int. 1.9 int* ptr; 1.10 - int len = (total_args_passed + 3) >> 2; 1.11 + int len = (total_args_passed + 7) >> 3; 1.12 if (len <= (int)(sizeof(_value._compact) / sizeof(int))) { 1.13 _value._compact[0] = _value._compact[1] = _value._compact[2] = 0; 1.14 // Storing the signature encoded as signed chars hits about 98% 1.15 @@ -2145,11 +2145,11 @@ 1.16 ptr = _value._fingerprint; 1.17 } 1.18 1.19 - // Now pack the BasicTypes with 4 per int 1.20 + // Now pack the BasicTypes with 8 per int 1.21 int sig_index = 0; 1.22 for (int index = 0; index < len; index++) { 1.23 int value = 0; 1.24 - for (int byte = 0; byte < 4; byte++) { 1.25 + for (int byte = 0; byte < 8; byte++) { 1.26 if (sig_index < total_args_passed) { 1.27 value = (value << 4) | adapter_encoding(sig_bt[sig_index++]); 1.28 } 1.29 @@ -2190,8 +2190,9 @@ 1.30 1.31 const char* as_string() { 1.32 stringStream st; 1.33 + st.print("0x"); 1.34 for (int i = 0; i < length(); i++) { 1.35 - st.print(PTR_FORMAT, value(i)); 1.36 + st.print("%08x", value(i)); 1.37 } 1.38 return st.as_string(); 1.39 }