History

r32, r64: no UB plz (thanks kvik)

Sigrid Solveig Haflínudóttir committed 5 years ago

Commit 31967261 parent 0c2839a1 file · +8 −3Browse files

Unified · Split

c9.c+8−3
@@ -83,19 +83,24 @@ static uint16_t · 82 unmodified lines
8383 r16(uint8_t **p)
8484 {
8585 *p += 2;
86− return (uint16_t)(*p)[-2]<<0 | (uint16_t)(*p)[-1]<<8;
86+ return (*p)[-2]<<0 | (*p)[-1]<<8;
8787 }
8888
8989 static uint32_t
9090 r32(uint8_t **p)
9191 {
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;
9394 }
9495
9596 static uint64_t
9697 r64(uint8_t **p)
9798 {
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;
99104 }
100105
101106 #ifndef C9_NO_CLIENT

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t