| line |
true |
false |
branch |
|
15
|
0 |
4 |
if (parser == NULL) { |
|
19
|
0 |
4 |
if (SvROK(master)) { |
|
48
|
0 |
4 |
if (parser->default_cb != NULL) |
|
50
|
1 |
3 |
if (parser->mblk_reply != NULL) |
|
54
|
0 |
4 |
while (store != NULL) { |
|
68
|
3 |
2 |
if(av_len(parser->callbacks) >= 0) { |
|
72
|
1 |
1 |
else if (parser->default_cb != NULL) { |
|
84
|
0 |
4 |
PUSHMARK(SP); |
|
85
|
0 |
4 |
XPUSHs(sv_2mortal(newRV_inc(parser->master))); |
|
86
|
0 |
4 |
XPUSHs(sv_2mortal(newSVsv(reply))); |
|
89
|
4 |
0 |
FREETMPS; |
|
100
|
336 |
4 |
for (i=0; i < length - 1; i++, pos++) { |
|
101
|
95 |
241 |
if (*pos == '\r' && pos[1] == '\n') { |
|
|
95 |
0 |
if (*pos == '\r' && pos[1] == '\n') { |
|
120
|
10 |
3 |
if (len >= 0) { |
|
139
|
24 |
1 |
if (len >= 0) { |
|
160
|
61 |
0 |
if (len >= 0) { |
|
180
|
0 |
4 |
PUSHMARK(SP); |
|
181
|
0 |
4 |
XPUSHs(parser->error_class); |
|
182
|
0 |
4 |
XPUSHs(sv_2mortal(msg)); |
|
185
|
0 |
4 |
if (count != 1) |
|
190
|
4 |
0 |
FREETMPS; |
|
218
|
0 |
13 |
if (store == NULL) |
|
235
|
49 |
20 |
if (parser->mblk_len > 1) { |
|
240
|
10 |
10 |
else if (parser->mblk_level > 1) { |
|
258
|
59 |
14 |
if (parser->mblk_level) { |
|
259
|
49 |
10 |
if (_mblk_item(parser, value)) |
|
273
|
23 |
1 |
if (av_len(parser->callbacks) >= 0) { |
|
277
|
0 |
1 |
else if (parser->default_cb != NULL) { |
|
281
|
0 |
23 |
PUSHMARK(SP); |
|
282
|
0 |
23 |
XPUSHs(sv_2mortal(newRV_inc(parser->master))); |
|
283
|
0 |
23 |
XPUSHs(sv_2mortal(reply)); |
|
286
|
23 |
0 |
FREETMPS; |
|
299
|
0 |
38 |
if (sv_len(parser->buffer) == 0) return 0; |
|
301
|
25 |
13 |
if (parser->state == RDBP_CLEAN) { |
|
309
|
2 |
23 |
if (op == '+') |
|
311
|
3 |
20 |
else if (op == '-') |
|
313
|
4 |
16 |
else if (op == ':') |
|
315
|
3 |
13 |
else if (op == '$') |
|
317
|
13 |
0 |
else if (op == '*') { |
|
327
|
7 |
204 |
if (sv_len(parser->buffer) < 2) return 0; |
|
329
|
8 |
196 |
if (parser->state == RDBP_READ_LINE) { |
|
331
|
2 |
6 |
if (line == NULL) return 0; |
|
332
|
3 |
3 |
if (_reply_completed(parser, line)) return 1; |
|
334
|
5 |
191 |
else if (parser->state == RDBP_READ_ERROR) { |
|
336
|
1 |
4 |
if (line == NULL) return 0; |
|
338
|
3 |
1 |
if (_reply_completed(parser, err)) return 1; |
|
340
|
25 |
166 |
else if (parser->state == RDBP_READ_NUMBER) { |
|
342
|
1 |
24 |
if (line == NULL) return 0; |
|
343
|
4 |
19 |
if (_reply_completed(parser, line)) return 1; |
|
345
|
35 |
131 |
else if (parser->state == RDBP_READ_BULK_LEN) { |
|
347
|
33 |
2 |
if (length >= 0) { |
|
351
|
2 |
0 |
else if (length == -1) { |
|
352
|
1 |
1 |
if (_reply_completed(parser, newSVpvn(NULL, 0))) return 1; |
|
356
|
35 |
96 |
else if (parser->state == RDBP_READ_BULK) { |
|
357
|
2 |
33 |
if (sv_len(parser->buffer) < 2 + parser->bulk_len) return 0; |
|
361
|
4 |
29 |
if (parser->utf8) { |
|
362
|
1 |
3 |
if (!sv_utf8_decode(bulk)) |
|
365
|
10 |
22 |
if (_reply_completed(parser, bulk)) return 1; |
|
367
|
26 |
70 |
else if (parser->state == RDBP_READ_MBLK_LEN) { |
|
369
|
21 |
5 |
if (length > 0) { |
|
374
|
2 |
3 |
else if (length == 0 || length == -1) { |
|
|
2 |
0 |
else if (length == 0 || length == -1) { |
|
375
|
3 |
2 |
mblk = (length == 0) ? newRV_noinc((SV *)newAV()) : newSVpvn(NULL, 0); |
|
377
|
3 |
2 |
if (parser->mblk_level > 0) |
|
379
|
2 |
3 |
if (_reply_completed(parser, mblk)) return 1; |
|
383
|
70 |
0 |
else if (parser->state == RDBP_WAIT_BUCKS) { |
|
389
|
32 |
38 |
if (op == '$') parser->state = RDBP_READ_BULK_LEN; |
|
390
|
20 |
18 |
else if (op == ':') parser->state = RDBP_READ_NUMBER; |
|
391
|
4 |
14 |
else if (op == '+') parser->state = RDBP_READ_LINE; |
|
392
|
1 |
13 |
else if (op == '-') parser->state = RDBP_READ_ERROR; |
|
393
|
13 |
0 |
else if (op == '*') { |