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 == '*') { |