This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove full stop in the 'try' feature heading
[perl5.git]
/
pp_hot.c
diff --git
a/pp_hot.c
b/pp_hot.c
index
30a5b35
..
c56d797
100644
(file)
--- a/
pp_hot.c
+++ b/
pp_hot.c
@@
-3189,7
+3189,7
@@
PP(pp_match)
if (global && (gimme != G_LIST || (dynpm->op_pmflags & PMf_CONTINUE))) {
if (!mg)
mg = sv_magicext_mglob(TARG);
if (global && (gimme != G_LIST || (dynpm->op_pmflags & PMf_CONTINUE))) {
if (!mg)
mg = sv_magicext_mglob(TARG);
- MgBYTEPOS_set(mg, TARG, truebase, RXp_OFFS
(prog)[0].end
);
+ MgBYTEPOS_set(mg, TARG, truebase, RXp_OFFS
_END(prog,0)
);
if (RXp_ZERO_LEN(prog))
mg->mg_flags |= MGf_MINMATCH;
else
if (RXp_ZERO_LEN(prog))
mg->mg_flags |= MGf_MINMATCH;
else
@@
-3211,20
+3211,16
@@
PP(pp_match)
EXTEND(SP, nparens + i);
EXTEND_MORTAL(nparens + i);
for (i = !i; i <= nparens; i++) {
EXTEND(SP, nparens + i);
EXTEND_MORTAL(nparens + i);
for (i = !i; i <= nparens; i++) {
- if (LIKELY((RXp_OFFS(prog)[i].start != -1)
- && RXp_OFFS(prog)[i].end != -1 ))
+ if (LIKELY(RXp_OFFS_VALID(prog,i)))
{
{
- const I32 len = RXp_OFFS(prog)[i].end - RXp_OFFS(prog)[i].start;
- const char * const s = RXp_OFFS(prog)[i].start + truebase;
- if (UNLIKELY( RXp_OFFS(prog)[i].end < 0
- || RXp_OFFS(prog)[i].start < 0
- || len < 0
- || len > strend - s)
+ const I32 len = RXp_OFFS_END(prog,i) - RXp_OFFS_START(prog,i);
+ const char * const s = RXp_OFFS_START(prog,i) + truebase;
+ if ( UNLIKELY( len < 0 || len > strend - s)
)
DIE(aTHX_ "panic: pp_match start/end pointers, i=%ld, "
"start=%ld, end=%ld, s=%p, strend=%p, len=%" UVuf,
)
DIE(aTHX_ "panic: pp_match start/end pointers, i=%ld, "
"start=%ld, end=%ld, s=%p, strend=%p, len=%" UVuf,
- (long) i, (long) RXp_OFFS
(prog)[i].start
,
- (long)RXp_OFFS
(prog)[i].end, s, strend, (U
V) len);
+ (long) i, (long) RXp_OFFS
_START(prog,i)
,
+ (long)RXp_OFFS
_END(prog,i), s, strend, (I
V) len);
PUSHs(newSVpvn_flags(s, len,
(DO_UTF8(TARG))
? SVf_UTF8|SVs_TEMP
PUSHs(newSVpvn_flags(s, len,
(DO_UTF8(TARG))
? SVf_UTF8|SVs_TEMP
@@
-3235,7
+3231,7
@@
PP(pp_match)
}
}
if (global) {
}
}
if (global) {
- curpos = (UV)RXp_OFFS
(prog)[0].end
;
+ curpos = (UV)RXp_OFFS
_END(prog,0)
;
had_zerolen = RXp_ZERO_LEN(prog);
PUTBACK; /* EVAL blocks may use stack */
r_flags |= REXEC_IGNOREPOS | REXEC_NOT_FIRST;
had_zerolen = RXp_ZERO_LEN(prog);
PUTBACK; /* EVAL blocks may use stack */
r_flags |= REXEC_IGNOREPOS | REXEC_NOT_FIRST;
@@
-4519,8
+4515,8
@@
PP(pp_subst)
char *d, *m;
if (RXp_MATCH_TAINTED(prog)) /* run time pattern taint, eg locale */
rxtainted |= SUBST_TAINT_PAT;
char *d, *m;
if (RXp_MATCH_TAINTED(prog)) /* run time pattern taint, eg locale */
rxtainted |= SUBST_TAINT_PAT;
- m = orig + RXp_OFFS
(prog)[0].start
;
- d = orig + RXp_OFFS
(prog)[0].end
;
+ m = orig + RXp_OFFS
_START(prog,0)
;
+ d = orig + RXp_OFFS
_END(prog,0)
;
s = orig;
if (m - s > strend - d) { /* faster to shorten from end */
I32 i;
s = orig;
if (m - s > strend - d) { /* faster to shorten from end */
I32 i;
@@
-4550,7
+4546,7
@@
PP(pp_subst)
}
else {
char *d, *m;
}
else {
char *d, *m;
- d = s = RXp_OFFS
(prog)[0].start
+ orig;
+ d = s = RXp_OFFS
_START(prog,0)
+ orig;
do {
I32 i;
if (UNLIKELY(iters++ > maxiters))
do {
I32 i;
if (UNLIKELY(iters++ > maxiters))
@@
-4558,7
+4554,7
@@
PP(pp_subst)
/* run time pattern taint, eg locale */
if (UNLIKELY(RXp_MATCH_TAINTED(prog)))
rxtainted |= SUBST_TAINT_PAT;
/* run time pattern taint, eg locale */
if (UNLIKELY(RXp_MATCH_TAINTED(prog)))
rxtainted |= SUBST_TAINT_PAT;
- m = RXp_OFFS
(prog)[0].start
+ orig;
+ m = RXp_OFFS
_START(prog,0)
+ orig;
if ((i = m - s)) {
if (s != d)
Move(s, d, i, char);
if ((i = m - s)) {
if (s != d)
Move(s, d, i, char);
@@
-4568,7
+4564,7
@@
PP(pp_subst)
Copy(c, d, clen, char);
d += clen;
}
Copy(c, d, clen, char);
d += clen;
}
- s = RXp_OFFS
(prog)[0].end
+ orig;
+ s = RXp_OFFS
_END(prog,0)
+ orig;
} while (CALLREGEXEC(rx, s, strend, orig,
s == m, /* don't match same null twice */
TARG, NULL,
} while (CALLREGEXEC(rx, s, strend, orig,
s == m, /* don't match same null twice */
TARG, NULL,
@@
-4611,7
+4607,7
@@
PP(pp_subst)
if (RXp_MATCH_TAINTED(prog)) /* run time pattern taint, eg locale */
rxtainted |= SUBST_TAINT_PAT;
repl = dstr;
if (RXp_MATCH_TAINTED(prog)) /* run time pattern taint, eg locale */
rxtainted |= SUBST_TAINT_PAT;
repl = dstr;
- s = RXp_OFFS
(prog)[0].start
+ orig;
+ s = RXp_OFFS
_START(prog,0)
+ orig;
dstr = newSVpvn_flags(orig, s-orig,
SVs_TEMP | (DO_UTF8(TARG) ? SVf_UTF8 : 0));
if (!c) {
dstr = newSVpvn_flags(orig, s-orig,
SVs_TEMP | (DO_UTF8(TARG) ? SVf_UTF8 : 0));
if (!c) {
@@
-4641,9
+4637,9
@@
PP(pp_subst)
s = orig + (old_s - old_orig);
strend = s + (strend - old_s);
}
s = orig + (old_s - old_orig);
strend = s + (strend - old_s);
}
- m = RXp_OFFS
(prog)[0].start
+ orig;
+ m = RXp_OFFS
_START(prog,0)
+ orig;
sv_catpvn_nomg_maybeutf8(dstr, s, m - s, DO_UTF8(TARG));
sv_catpvn_nomg_maybeutf8(dstr, s, m - s, DO_UTF8(TARG));
- s = RXp_OFFS
(prog)[0].end
+ orig;
+ s = RXp_OFFS
_END(prog,0)
+ orig;
if (first) {
/* replacement already stringified */
if (clen)
if (first) {
/* replacement already stringified */
if (clen)
@@
-5152,7
+5148,8
@@
Perl_clear_defarray(pTHX_ AV* av, bool abandon)
else {
const SSize_t size = AvFILLp(av) + 1;
/* The ternary gives consistency with av_extend() */
else {
const SSize_t size = AvFILLp(av) + 1;
/* The ternary gives consistency with av_extend() */
- AV *newav = newAV_alloc_x(size < 4 ? 4 : size);
+ AV *newav = newAV_alloc_x(size < PERL_ARRAY_NEW_MIN_KEY ?
+ PERL_ARRAY_NEW_MIN_KEY : size);
AvREIFY_only(newav);
PAD_SVl(0) = MUTABLE_SV(newav);
SvREFCNT_dec_NN(av);
AvREIFY_only(newav);
PAD_SVl(0) = MUTABLE_SV(newav);
SvREFCNT_dec_NN(av);