Change 33150 by [EMAIL PROTECTED] on 2008/01/31 12:04:14
Integrate:
[ 32853]
Convert all accesses of the member paren_names of struct regexp to
be accessed via RXp_PAREN_NAMES(). (They are entirely within the
regexp implementation).
Affected files ...
... //depot/maint-5.10/perl/regcomp.c#8 integrate
... //depot/maint-5.10/perl/regexec.c#7 integrate
... //depot/maint-5.10/perl/regexp.h#6 integrate
Differences ...
==== //depot/maint-5.10/perl/regcomp.c#8 (text) ====
Index: perl/regcomp.c
--- perl/regcomp.c#7~33149~ 2008-01-31 03:43:05.000000000 -0800
+++ perl/regcomp.c 2008-01-31 04:04:14.000000000 -0800
@@ -4787,9 +4787,9 @@
if (RExC_seen & REG_SEEN_CUTGROUP)
r->intflags |= PREGf_CUTGROUP_SEEN;
if (RExC_paren_names)
- r->paren_names = (HV*)SvREFCNT_inc(RExC_paren_names);
+ RXp_PAREN_NAMES(r) = (HV*)SvREFCNT_inc(RExC_paren_names);
else
- r->paren_names = NULL;
+ RXp_PAREN_NAMES(r) = NULL;
#ifdef STUPID_PATTERN_CHECKS
if (RX_PRELEN(r) == 0)
@@ -4908,8 +4908,8 @@
if (flags & RXapif_ALL)
retarray=newAV();
- if (rx && rx->paren_names) {
- HE *he_str = hv_fetch_ent( rx->paren_names, namesv, 0, 0 );
+ if (rx && RXp_PAREN_NAMES(rx)) {
+ HE *he_str = hv_fetch_ent( RXp_PAREN_NAMES(rx), namesv, 0, 0 );
if (he_str) {
IV i;
SV* sv_dat=HeVAL(he_str);
@@ -4942,9 +4942,9 @@
Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key,
const U32 flags)
{
- if (rx && rx->paren_names) {
+ if (rx && RXp_PAREN_NAMES(rx)) {
if (flags & RXapif_ALL) {
- return hv_exists_ent(rx->paren_names, key, 0);
+ return hv_exists_ent(RXp_PAREN_NAMES(rx), key, 0);
} else {
SV *sv = CALLREG_NAMED_BUFF_FETCH(rx, key, flags);
if (sv) {
@@ -4962,8 +4962,8 @@
SV*
Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags)
{
- if ( rx && rx->paren_names ) {
- (void)hv_iterinit(rx->paren_names);
+ if ( rx && RXp_PAREN_NAMES(rx) ) {
+ (void)hv_iterinit(RXp_PAREN_NAMES(rx));
return CALLREG_NAMED_BUFF_NEXTKEY(rx, NULL, flags & ~RXapif_FIRSTKEY);
} else {
@@ -4974,8 +4974,8 @@
SV*
Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags)
{
- if (rx && rx->paren_names) {
- HV *hv = rx->paren_names;
+ if (rx && RXp_PAREN_NAMES(rx)) {
+ HV *hv = RXp_PAREN_NAMES(rx);
HE *temphe;
while ( (temphe = hv_iternext_flags(hv,0)) ) {
IV i;
@@ -5008,9 +5008,9 @@
AV *av;
I32 length;
- if (rx && rx->paren_names) {
+ if (rx && RXp_PAREN_NAMES(rx)) {
if (flags & (RXapif_ALL | RXapif_REGNAMES_COUNT)) {
- return newSViv(HvTOTALKEYS(rx->paren_names));
+ return newSViv(HvTOTALKEYS(RXp_PAREN_NAMES(rx)));
} else if (flags & RXapif_ONE) {
ret = CALLREG_NAMED_BUFF_ALL(rx, (flags | RXapif_REGNAMES));
av = (AV*)SvRV(ret);
@@ -5029,8 +5029,8 @@
{
AV *av = newAV();
- if (rx && rx->paren_names) {
- HV *hv= rx->paren_names;
+ if (rx && RXp_PAREN_NAMES(rx)) {
+ HV *hv= RXp_PAREN_NAMES(rx);
HE *temphe;
(void)hv_iterinit(hv);
while ( (temphe = hv_iternext_flags(hv,0)) ) {
@@ -8909,7 +8909,7 @@
Perl_sv_catpvf(aTHX_ sv, "[%d/%d]", o->flags & 0xf, o->flags>>4);
else if (k == REF || k == OPEN || k == CLOSE || k == GROUPP ||
OP(o)==ACCEPT) {
Perl_sv_catpvf(aTHX_ sv, "%d", (int)ARG(o)); /* Parenth number */
- if ( prog->paren_names ) {
+ if ( RXp_PAREN_NAMES(prog) ) {
if ( k != REF || OP(o) < NREF) {
AV *list= (AV *)progi->data->data[progi->name_list_idx];
SV **name= av_fetch(list, ARG(o), 0 );
@@ -9141,8 +9141,8 @@
ReREFCNT_dec(r->mother_re);
} else {
CALLREGFREE_PVT(r); /* free the private data */
- if (r->paren_names)
- SvREFCNT_dec(r->paren_names);
+ if (RXp_PAREN_NAMES(r))
+ SvREFCNT_dec(RXp_PAREN_NAMES(r));
Safefree(RX_WRAPPED(r));
}
if (r->substrs) {
@@ -9429,7 +9429,7 @@
RX_WRAPPED(ret) = SAVEPVN(RX_WRAPPED(ret), RX_WRAPLEN(ret)+1);
RX_PRECOMP(ret) = ret->wrapped + precomp_offset;
- ret->paren_names = hv_dup_inc(ret->paren_names, param);
+ RXp_PAREN_NAMES(ret) = hv_dup_inc(RXp_PAREN_NAMES(ret), param);
if (ret->pprivate)
RXi_SET(ret,CALLREGDUPE_PVT(ret,param));
==== //depot/maint-5.10/perl/regexec.c#7 (text) ====
Index: perl/regexec.c
--- perl/regexec.c#6~33149~ 2008-01-31 03:43:05.000000000 -0800
+++ perl/regexec.c 2008-01-31 04:04:14.000000000 -0800
@@ -2148,8 +2148,8 @@
if (PL_reg_eval_set)
restore_pos(aTHX_ prog);
- if (prog->paren_names)
- (void)hv_iterinit(prog->paren_names);
+ if (RXp_PAREN_NAMES(prog))
+ (void)hv_iterinit(RXp_PAREN_NAMES(prog));
/* make sure $`, $&, $', and $digit will work later */
if ( !(flags & REXEC_NOT_FIRST) ) {
==== //depot/maint-5.10/perl/regexp.h#6 (text) ====
Index: perl/regexp.h
--- perl/regexp.h#5~33148~ 2008-01-31 03:15:35.000000000 -0800
+++ perl/regexp.h 2008-01-31 04:04:14.000000000 -0800
@@ -110,6 +110,8 @@
I32 refcnt; /* Refcount of this regexp */
} regexp;
+#define RXp_PAREN_NAMES(rx) ((rx)->paren_names)
+
/* used for high speed searches */
typedef struct re_scream_pos_data_s
{
End of Patch.