Unified · Split
| @@ -83,19 +83,24 @@ static uint16_t · 82 unmodified lines | |||
| 83 | r16(uint8_t **p) | 83 | r16(uint8_t **p) |
| 84 | { | 84 | { |
| 85 | *p += 2; | 85 | *p += 2; |
| 86 | return (uint16_t)(*p)[-2]<<0 | (uint16_t)(*p)[-1]<<8; | 86 | return (*p)[-2]<<0 | (*p)[-1]<<8; |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | static uint32_t | 89 | static uint32_t |
| 90 | r32(uint8_t **p) | 90 | r32(uint8_t **p) |
| 91 | { | 91 | { |
| 92 | return r16(p) | (uint32_t)r16(p)<<16; | 92 | *p += 4; |
| 93 | return (*p)[-4]<<0 | (*p)[-3]<<8 | (*p)[-2]<<16 | (*p)[-1]<<24; | ||
| 93 | } | 94 | } |
| 94 | 95 | ||
| 95 | static uint64_t | 96 | static uint64_t |
| 96 | r64(uint8_t **p) | 97 | r64(uint8_t **p) |
| 97 | { | 98 | { |
| 98 | return r32(p) | (uint64_t)r32(p)<<32; | 99 | uint64_t v; |
| 100 | |||
| 101 | v = r32(p); | ||
| 102 | v |= (uint64_t)r32(p)<<32; | ||
| 103 | return v; | ||
| 99 | } | 104 | } |
| 100 | 105 | ||
| 101 | #ifndef C9_NO_CLIENT | 106 | #ifndef C9_NO_CLIENT |