60 } |
60 } |
61 |
61 |
62 switch (len) { |
62 switch (len) { |
63 case 3: |
63 case 3: |
64 h ^= (data[i + 2] & 0xFF) << 16; |
64 h ^= (data[i + 2] & 0xFF) << 16; |
65 __attribute__((__fallthrough__)); |
65 cx_attr_fallthrough; |
66 case 2: |
66 case 2: |
67 h ^= (data[i + 1] & 0xFF) << 8; |
67 h ^= (data[i + 1] & 0xFF) << 8; |
68 __attribute__((__fallthrough__)); |
68 cx_attr_fallthrough; |
69 case 1: |
69 case 1: |
70 h ^= (data[i + 0] & 0xFF); |
70 h ^= (data[i + 0] & 0xFF); |
71 h *= m; |
71 h *= m; |
72 __attribute__((__fallthrough__)); |
72 cx_attr_fallthrough; |
73 default: // do nothing |
73 default: // do nothing |
74 ; |
74 ; |
75 } |
75 } |
76 |
76 |
77 h ^= h >> 13; |
77 h ^= h >> 13; |