line |
true |
false |
branch |
75
|
0 |
12 |
if (SvTYPE(sv) == SVt_PVGV) { |
78
|
0 |
12 |
if (!SvOK(sv)) { |
|
0 |
0 |
if (!SvOK(sv)) { |
|
0 |
0 |
if (!SvOK(sv)) { |
81
|
9 |
3 |
if (!SvROK(sv)) { |
123
|
3 |
0 |
if (type) { |
124
|
0 |
3 |
if (sv_isobject(sv)) return type | OBJECT; |
135
|
12 |
0 |
if (GvHV(PL_hintgv) && (PL_hints & HINT_LOCALIZE_HH) == HINT_LOCALIZE_HH) { |
|
6 |
6 |
if (GvHV(PL_hintgv) && (PL_hints & HINT_LOCALIZE_HH) == HINT_LOCALIZE_HH) { |
137
|
3 |
3 |
if (he != NULL) { |
139
|
3 |
0 |
if (val != &PL_sv_placeholder) { |
140
|
3 |
0 |
return (int)SvIV(val); |
162
|
0 |
6 |
bool is_utf8 = DO_UTF8(pattern); |
|
0 |
0 |
bool is_utf8 = DO_UTF8(pattern); |
179
|
0 |
6 |
if (isDebug) { |
188
|
0 |
6 |
if (isDebug) { |
197
|
3 |
3 |
if (pattern_type == SCALAR) { |
199
|
0 |
3 |
if (isDebug) { |
205
|
1 |
2 |
} else if (pattern_type == ARRAYREF) { |
210
|
0 |
1 |
if (isDebug) { |
214
|
0 |
1 |
if (av_len(av) < 1) { |
220
|
1 |
0 |
if (a_pattern == NULL || get_type(aTHX_ (SV *)*a_pattern) != SCALAR) { |
|
0 |
1 |
if (a_pattern == NULL || get_type(aTHX_ (SV *)*a_pattern) != SCALAR) { |
223
|
1 |
0 |
if (a_syntax == NULL || get_type(aTHX_ (SV *)*a_syntax) != SCALAR) { |
|
0 |
1 |
if (a_syntax == NULL || get_type(aTHX_ (SV *)*a_syntax) != SCALAR) { |
230
|
2 |
0 |
} else if (pattern_type == HASHREF) { |
235
|
0 |
2 |
if (isDebug) { |
239
|
2 |
0 |
if (h_pattern == NULL || get_type(aTHX_ (SV *)*h_pattern) != SCALAR) { |
|
0 |
2 |
if (h_pattern == NULL || get_type(aTHX_ (SV *)*h_pattern) != SCALAR) { |
242
|
2 |
0 |
if (h_syntax == NULL || get_type(aTHX_ (SV *)*h_syntax) != SCALAR) { |
|
0 |
2 |
if (h_syntax == NULL || get_type(aTHX_ (SV *)*h_syntax) != SCALAR) { |
253
|
6 |
0 |
exp = SvPV(sv_pattern, plen); |
261
|
0 |
6 |
if (flags & RXf_SPLIT && plen == 1 && exp[0] == ' ') { |
|
0 |
0 |
if (flags & RXf_SPLIT && plen == 1 && exp[0] == ' ') { |
|
0 |
0 |
if (flags & RXf_SPLIT && plen == 1 && exp[0] == ' ') { |
262
|
0 |
0 |
if (isDebug) { |
271
|
0 |
6 |
if (plen == 0) { |
272
|
0 |
0 |
if (isDebug) { |
281
|
0 |
6 |
if (plen == 1 && exp[0] == '^') { |
|
0 |
0 |
if (plen == 1 && exp[0] == '^') { |
282
|
0 |
0 |
if (isDebug) { |
291
|
0 |
6 |
if (plen == 3 && strnEQ("\\s+", exp, 3)) { |
|
0 |
0 |
if (plen == 3 && strnEQ("\\s+", exp, 3)) { |
292
|
0 |
0 |
if (isDebug) { |
307
|
3 |
3 |
ri->regex.syntax = (sv_syntax != NULL) ? (int)SvUV(sv_syntax) : defaultSyntax; |
|
0 |
3 |
ri->regex.syntax = (sv_syntax != NULL) ? (int)SvUV(sv_syntax) : defaultSyntax; |
322
|
0 |
6 |
if ((flags & RXf_PMf_MULTILINE) == RXf_PMf_MULTILINE) { |
323
|
0 |
0 |
if (isDebug) { |
328
|
0 |
6 |
if (isDebug) { |
335
|
0 |
6 |
if ((flags & RXf_PMf_SINGLELINE) == RXf_PMf_SINGLELINE) { |
336
|
0 |
0 |
if (isDebug) { |
341
|
0 |
6 |
if (isDebug) { |
348
|
0 |
6 |
if ((flags & RXf_PMf_FOLD) == RXf_PMf_FOLD) { |
349
|
0 |
0 |
if (isDebug) { |
354
|
0 |
6 |
if (isDebug) { |
361
|
0 |
6 |
if ((flags & RXf_PMf_EXTENDED) == RXf_PMf_EXTENDED) { |
363
|
0 |
0 |
if (isDebug) { |
371
|
1 |
5 |
if ((flags & RXf_PMf_KEEPCOPY) == RXf_PMf_KEEPCOPY) { |
372
|
0 |
1 |
if (isDebug) { |
376
|
0 |
5 |
if (isDebug) { |
401
|
0 |
6 |
if (isDebug) { |
406
|
0 |
6 |
if (ri->regex.newline_anchor == 1) { |
409
|
0 |
6 |
if ((ri->regex.syntax & RE_DOT_NEWLINE) == RE_DOT_NEWLINE) { |
412
|
1 |
5 |
if ((ri->regex.syntax & RE_ICASE) == RE_ICASE) { |
430
|
0 |
6 |
if (isDebug) { |
435
|
0 |
6 |
if (isDebug) { |
441
|
0 |
6 |
if (ret != _REG_NOERROR) { |
453
|
0 |
6 |
if (isDebug) { |
462
|
0 |
6 |
Newxz(REGEXP_OFFS_GET(r), REGEXP_NPARENS_GET(r) + 1, regexp_paren_pair); |
464
|
0 |
6 |
if (isDebug) { |
492
|
0 |
12 |
if (isDebug) { |
496
|
12 |
0 |
if ((flags & REXEC_COPY_STR) == REXEC_COPY_STR) { |
502
|
12 |
0 |
short canCow = SvCANCOW(sv); |
|
12 |
0 |
short canCow = SvCANCOW(sv); |
|
12 |
0 |
short canCow = SvCANCOW(sv); |
|
0 |
0 |
short canCow = SvCANCOW(sv); |
|
0 |
0 |
short canCow = SvCANCOW(sv); |
509
|
12 |
0 |
if (canCow != 0) { |
511
|
7 |
5 |
if ((REGEXP_SAVED_COPY_GET(r) != NULL) |
512
|
7 |
0 |
&& SvIsCOW(REGEXP_SAVED_COPY_GET(r)) |
513
|
7 |
0 |
&& SvPOKp(REGEXP_SAVED_COPY_GET(r)) |
514
|
7 |
0 |
&& SvIsCOW(sv) |
515
|
7 |
0 |
&& SvPOKp(sv) |
516
|
7 |
0 |
&& (SvPVX(sv) == SvPVX(REGEXP_SAVED_COPY_GET(r)))) { |
518
|
0 |
7 |
if (isDebug) { |
521
|
0 |
7 |
if (RX_MATCH_COPIED(rx)) { |
528
|
0 |
5 |
if (isDebug) { |
531
|
0 |
5 |
RX_MATCH_COPY_FREE(rx); |
|
0 |
0 |
RX_MATCH_COPY_FREE(rx); |
|
0 |
5 |
RX_MATCH_COPY_FREE(rx); |
538
|
0 |
12 |
if (isDebug) { |
633
|
0 |
0 |
if (RX_MATCH_COPIED(rx)) { |
634
|
0 |
0 |
if (sublen > REGEXP_SUBLEN_GET(r)) |
645
|
0 |
0 |
if (isDebug) { |
679
|
0 |
0 |
if (REGEXP_SUBOFFSET_GET(r) != 0 && utf8_target != 0) { |
|
0 |
0 |
if (REGEXP_SUBOFFSET_GET(r) != 0 && utf8_target != 0) { |
695
|
0 |
0 |
if (SvPOKp(sv) && SvPVX(sv) == strbeg) |
|
0 |
0 |
if (SvPOKp(sv) && SvPVX(sv) == strbeg) |
703
|
0 |
0 |
if (isDebug) { |
710
|
0 |
0 |
RX_MATCH_COPY_FREE(rx); |
|
0 |
0 |
RX_MATCH_COPY_FREE(rx); |
|
0 |
0 |
RX_MATCH_COPY_FREE(rx); |
717
|
0 |
12 |
if (isDebug) { |
738
|
10 |
4 |
short utf8_target = DO_UTF8(sv) ? 1 : 0; |
|
10 |
0 |
short utf8_target = DO_UTF8(sv) ? 1 : 0; |
744
|
0 |
14 |
if (isDebug) { |
750
|
0 |
14 |
if (isDebug) { |
755
|
0 |
14 |
if (rc <= -2) { |
757
|
2 |
12 |
} else if (rc == -1) { |
758
|
0 |
2 |
if (isDebug) { |
765
|
9 |
3 |
RX_MATCH_UTF8_set(rx, utf8_target); |
772
|
25 |
12 |
for (i = 0; i < REGEXP_NPARENS_GET(r) + 1; i++) { |
773
|
0 |
25 |
if (isDebug) { |
783
|
12 |
0 |
if ((flags & REXEC_NOT_FIRST) != REXEC_NOT_FIRST) { |
838
|
12 |
0 |
if (regs.start != NULL) { |
841
|
12 |
0 |
if (regs.end != NULL) { |
845
|
0 |
12 |
if (isDebug) { |
877
|
0 |
0 |
if (isDebug) { |
899
|
0 |
0 |
if (isDebug) { |
919
|
0 |
6 |
if (isDebug) { |
924
|
0 |
6 |
if (isDebug) { |
928
|
3 |
3 |
if (ri->sv_syntax != NULL) { |
929
|
0 |
3 |
if (isDebug) { |
935
|
0 |
6 |
if (isDebug) { |
940
|
0 |
6 |
if (isDebug) { |
945
|
0 |
6 |
if (isDebug) { |
965
|
0 |
2 |
if (isDebug) { |
972
|
0 |
2 |
if (isDebug) { |
1126
|
0 |
12 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(&engine_GNU)))); |
1132
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_AWK))); |
1138
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_ED))); |
1144
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_EGREP))); |
1150
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_EMACS))); |
1156
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_GNU_AWK))); |
1162
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_GREP))); |
1168
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_POSIX_AWK))); |
1174
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_POSIX_BASIC))); |
1180
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_POSIX_EGREP))); |
1186
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_POSIX_EXTENDED))); |
1192
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_POSIX_MINIMAL_BASIC))); |
1198
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_POSIX_MINIMAL_EXTENDED))); |
1204
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_SYNTAX_SED))); |
1210
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_BACKSLASH_ESCAPE_IN_LISTS))); |
1216
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_BK_PLUS_QM))); |
1222
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_CHAR_CLASSES))); |
1228
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_CONTEXT_INDEP_ANCHORS))); |
1234
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_CONTEXT_INDEP_OPS))); |
1240
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_CONTEXT_INVALID_OPS))); |
1246
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_DOT_NEWLINE))); |
1252
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_DOT_NOT_NULL))); |
1258
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_HAT_LISTS_NOT_NEWLINE))); |
1264
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_INTERVALS))); |
1270
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_LIMITED_OPS))); |
1276
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NEWLINE_ALT))); |
1282
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_BK_BRACES))); |
1288
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_BK_PARENS))); |
1294
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_BK_REFS))); |
1300
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_BK_VBAR))); |
1306
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_EMPTY_RANGES))); |
1312
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_UNMATCHED_RIGHT_PAREN_ORD))); |
1318
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_POSIX_BACKTRACKING))); |
1324
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_GNU_OPS))); |
1330
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_DEBUG))); |
1336
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_INVALID_INTERVAL_ORD))); |
1342
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_ICASE))); |
1348
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_CARET_ANCHORS_HERE))); |
1354
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_CONTEXT_INVALID_DUP))); |
1360
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(RE_NO_SUB))); |