src/share/vm/runtime/sharedRuntime.cpp

changeset 3039
0f34fdee809e
parent 2978
d83ac25d0304
child 3194
ec5ce9326985
child 3202
436b4a3231bf
     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    }

mercurial