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.

Reply via email to