Make struct regexp the body of SVt_REGEXP SVs, REGEXPs become SVs,
[p5sagit/p5-mst-13.2.git] / pp_ctl.c
index ae0c61e..8681cd9 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -117,7 +117,7 @@ PP(pp_regcomp)
     if (SvROK(tmpstr)) {
        SV * const sv = SvRV(tmpstr);
        if (SvTYPE(sv) == SVt_REGEXP)
-           re = ((struct xregexp *)SvANY(sv))->xrx_regexp;
+           re = sv;
     }
     if (re) {
        re = reg_temp_copy(re);
@@ -3905,11 +3905,11 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other)
 
 #   define SM_REGEX ( \
           (SvROK(d) && (SvTYPE(This = SvRV(d)) == SVt_REGEXP)          \
-       && (this_regex = ((struct xregexp *)SvANY(This))->xrx_regexp)   \
+       && (this_regex = This)                                          \
        && (Other = e))                                                 \
     ||                                                                 \
           (SvROK(e) && (SvTYPE(This = SvRV(e)) == SVt_REGEXP)          \
-       && (this_regex = ((struct xregexp *)SvANY(This))->xrx_regexp)   \
+       && (this_regex = This)                                          \
        && (Other = d)) )
        
 
@@ -3918,7 +3918,7 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other)
 
 #   define SM_OTHER_REGEX (SvROK(Other)                                        \
        && (SvTYPE(SvRV(Other)) == SVt_REGEXP)                          \
-       && (other_regex = ((struct xregexp *)SvANY(SvRV(Other)))->xrx_regexp))
+       && (other_regex = SvRV(Other)))
 
 
 #   define SM_SEEN_THIS(sv) hv_exists_ent(seen_this, \