| 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; |