| line |
true |
false |
branch |
|
32
|
15 |
2 |
if(!npieces) |
|
36
|
19 |
15 |
for(U32 i = 0; i < npieces; i++) { |
|
41
|
0 |
19 |
EXTEND(SP, 1); |
|
42
|
0 |
19 |
PUSHMARK(SP); |
|
54
|
19 |
0 |
FREETMPS; |
|
72
|
0 |
1 |
PUSHMARK(SP); |
|
73
|
1 |
0 |
if(data->hookdata) |
|
74
|
0 |
1 |
XPUSHs(sv_mortalcopy(data->hookdata)); |
|
76
|
0 |
0 |
XPUSHs(&PL_sv_undef); |
|
84
|
1 |
0 |
FREETMPS; |
|
99
|
0 |
1 |
PUSHMARK(SP); |
|
100
|
1 |
0 |
if(data->hookdata) |
|
101
|
0 |
1 |
XPUSHs(sv_mortalcopy(data->hookdata)); |
|
103
|
0 |
0 |
XPUSHs(&PL_sv_undef); |
|
108
|
1 |
0 |
FREETMPS; |
|
120
|
18 |
21 |
for(U32 i = 0; i < nargs; i++) { |
|
129
|
0 |
21 |
PUSHMARK(SP); |
|
130
|
0 |
21 |
EXTEND(SP, 3); |
|
133
|
1 |
20 |
if(data->hookdata) |
|
144
|
19 |
2 |
if(SvOK(outsv)) { |
|
148
|
21 |
0 |
FREETMPS; |
|
196
|
9 |
0 |
case 3: RETVAL = arg->sv ? SvREFCNT_inc(arg->sv) : &PL_sv_undef; break; |
|
197
|
1 |
1 |
case 4: RETVAL = arg->sv ? &PL_sv_yes : &PL_sv_no; break; |
|
215
|
3 |
16 |
if (strEQ(type, "XPK_BLOCK")) piece = (struct XSParseKeywordPieceType)XPK_BLOCK; |
|
216
|
0 |
16 |
else if(strEQ(type, "XPK_ANONSUB")) piece = (struct XSParseKeywordPieceType)XPK_ANONSUB; |
|
217
|
0 |
16 |
else if(strEQ(type, "XPK_ARITHEXPR")) piece = (struct XSParseKeywordPieceType)XPK_ARITHEXPR; |
|
218
|
0 |
16 |
else if(strEQ(type, "XPK_ARITHEXPR_OPT")) piece = (struct XSParseKeywordPieceType)XPK_ARITHEXPR_OPT; |
|
219
|
2 |
14 |
else if(strEQ(type, "XPK_TERMEXPR")) piece = (struct XSParseKeywordPieceType)XPK_TERMEXPR; |
|
220
|
0 |
14 |
else if(strEQ(type, "XPK_TERMEXPR_OPT")) piece = (struct XSParseKeywordPieceType)XPK_TERMEXPR_OPT; |
|
221
|
0 |
14 |
else if(strEQ(type, "XPK_LISTEXPR")) piece = (struct XSParseKeywordPieceType)XPK_LISTEXPR; |
|
222
|
0 |
14 |
else if(strEQ(type, "XPK_LISTEXPR_OPT")) piece = (struct XSParseKeywordPieceType)XPK_LISTEXPR_OPT; |
|
223
|
3 |
11 |
else if(strEQ(type, "XPK_IDENT")) piece = (struct XSParseKeywordPieceType)XPK_IDENT; |
|
224
|
1 |
10 |
else if(strEQ(type, "XPK_IDENT_OPT")) piece = (struct XSParseKeywordPieceType)XPK_IDENT_OPT; |
|
225
|
1 |
9 |
else if(strEQ(type, "XPK_PACKAGENAME")) piece = (struct XSParseKeywordPieceType)XPK_PACKAGENAME; |
|
226
|
0 |
9 |
else if(strEQ(type, "XPK_PACKAGENAME_OPT")) piece = (struct XSParseKeywordPieceType)XPK_PACKAGENAME_OPT; |
|
227
|
1 |
8 |
else if(strEQ(type, "XPK_VSTRING")) piece = (struct XSParseKeywordPieceType)XPK_VSTRING; |
|
228
|
0 |
8 |
else if(strEQ(type, "XPK_VSTRING_OPT")) piece = (struct XSParseKeywordPieceType)XPK_VSTRING_OPT; |
|
229
|
1 |
7 |
else if(strEQ(type, "XPK_COMMA")) piece = (struct XSParseKeywordPieceType)XPK_COMMA; |
|
230
|
0 |
7 |
else if(strEQ(type, "XPK_COLON")) piece = (struct XSParseKeywordPieceType)XPK_COLON; |
|
231
|
0 |
7 |
else if(strEQ(type, "XPK_EQUALS")) piece = (struct XSParseKeywordPieceType)XPK_EQUALS; |
|
232
|
0 |
7 |
else if(strEQ(type, "XPK_INTRO_MY")) piece = (struct XSParseKeywordPieceType)XPK_INTRO_MY; |
|
234
|
1 |
6 |
else if(strEQ(type, "XPK_LEXVARNAME")) |
|
236
|
1 |
5 |
else if(strEQ(type, "XPK_LEXVAR")) |
|
238
|
0 |
5 |
else if(strEQ(type, "XPK_LEXVAR_MY")) |
|
240
|
0 |
5 |
else if(strEQ(type, "XPK_LITERAL")) |
|
242
|
1 |
4 |
else if(strEQ(type, "XPK_KEYWORD")) |
|
244
|
0 |
4 |
else if(strEQ(type, "XPK_FAILURE")) |
|
246
|
1 |
3 |
else if(strEQ(type, "XPK_WARNING")) |
|
248
|
0 |
3 |
else if(strEQ(type, "XPK_WARNING_AMBIGUOUS")) |
|
250
|
0 |
3 |
else if(strEQ(type, "XPK_WARNING_DEPRECATED")) |
|
252
|
0 |
3 |
else if(strEQ(type, "XPK_WARNING_EXPERIMENTAL")) |
|
254
|
0 |
3 |
else if(strEQ(type, "XPK_WARNING_PRECEDENCE")) |
|
256
|
0 |
3 |
else if(strEQ(type, "XPK_WARNING_SYNTAX")) |
|
259
|
0 |
3 |
else if(strEQ(type, "XPK_SEQUENCE")) |
|
263
|
0 |
3 |
else if(strEQ(type, "XPK_OPTIONAL")) |
|
267
|
1 |
2 |
else if(strEQ(type, "XPK_REPEATED")) |
|
271
|
0 |
2 |
else if(strEQ(type, "XPK_CHOICE")) |
|
275
|
2 |
0 |
else if(strEQ(type, "XPK_PARENS")) |
|
279
|
0 |
0 |
else if(strEQ(type, "XPK_ARGS")) |
|
283
|
0 |
0 |
else if(strEQ(type, "XPK_BRACKETS")) |
|
287
|
0 |
0 |
else if(strEQ(type, "XPK_BRACES")) |
|
291
|
0 |
0 |
else if(strEQ(type, "XPK_CHEVRONS")) |
|
324
|
55 |
19 |
while(KWARG_NEXT(args)) |
|
332
|
14 |
0 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVAV) |
|
|
0 |
14 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVAV) |
|
343
|
1 |
0 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVCV) |
|
|
0 |
1 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVCV) |
|
345
|
1 |
0 |
data.permitcv = (CV *)SvREFCNT_inc((SV *)CV_FROM_REF(kwval)); |
|
349
|
1 |
0 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVCV) |
|
|
0 |
1 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVCV) |
|
351
|
1 |
0 |
data.checkcv = (CV *)SvREFCNT_inc((SV *)CV_FROM_REF(kwval)); |
|
355
|
19 |
0 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVCV) |
|
|
0 |
19 |
if(!SvROK(kwval) || SvTYPE(SvRV(kwval)) != SVt_PVCV) |
|
357
|
19 |
0 |
data.buildcv = (CV *)SvREFCNT_inc((SV *)CV_FROM_REF(kwval)); |
|
365
|
0 |
19 |
if(!data.buildcv) |
|
367
|
1 |
18 |
if(!permit_hintkeysv && !data.permitcv) |
|
|
0 |
1 |
if(!permit_hintkeysv && !data.permitcv) |
|
370
|
7 |
12 |
if(!pieces) { |
|
381
|
18 |
1 |
if(permit_hintkeysv) |
|
383
|
1 |
18 |
if(data.permitcv) |
|
385
|
1 |
18 |
if(data.checkcv) |