line |
true |
false |
branch |
36
|
1 |
3 |
const char* basis = url_mode ? basis64url : basis64; |
39
|
263 |
4 |
for (int64_t len = source.length(); len > 0; len -= 3) { |
41
|
260 |
3 |
unsigned char c2 = len > 1 ? *str++ : '\0'; |
44
|
260 |
3 |
if (len > 2) { |
48
|
0 |
3 |
} else if (len == 2) { |
50
|
0 |
0 |
if (use_pad) *ptr++ = '='; |
51
|
1 |
2 |
} else if (use_pad) { |
64
|
263 |
1 |
while (str < end) { |
69
|
1048 |
0 |
if (uc != INVALID) c[i++] = uc; |
70
|
4 |
1044 |
if (str == end) { |
71
|
2 |
2 |
if (i < 4) { |
72
|
0 |
2 |
if (i < 2) goto thats_it; |
73
|
2 |
0 |
if (i == 2) c[2] = EQ; |
78
|
785 |
259 |
} while (i < 4); |
80
|
263 |
0 |
if (c[0] == EQ || c[1] == EQ) break; |
|
263 |
0 |
if (c[0] == EQ || c[1] == EQ) break; |
82
|
3 |
260 |
if (c[2] == EQ) break; |
84
|
0 |
260 |
if (c[3] == EQ) break; |