X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regexp.h;h=90e3406a965941ba683673f60b389ba9d466a964;hb=6f7a7d3eeb6b7da414c3496d3eb5a7c4f5127201;hp=8cce3b32bedc733c0481527d8bde5b1a20c77074;hpb=1593ad57168f1432573f8effd44b7610e9f8f962;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regexp.h b/regexp.h index 8cce3b3..90e3406 100644 --- a/regexp.h +++ b/regexp.h @@ -88,7 +88,7 @@ typedef struct regexp_paren_pair { /* during matching */ \ U32 lastparen; /* last open paren matched */ \ U32 lastcloseparen; /* last close paren matched */ \ - regexp_paren_pair *swap; /* Swap copy of *offs */ \ + regexp_paren_pair *swap; /* Unused: 5.10.1 and later */ \ /* Array of offsets for (@-) and (@+) */ \ regexp_paren_pair *offs; \ /* saved or original string so \digit works forever. */ \ @@ -107,12 +107,6 @@ typedef struct regexp { _REGEXP_COMMON; } regexp; -struct regexp_allocated { - _XPV_ALLOCATED_HEAD; - _XPVMG_HEAD; - _REGEXP_COMMON; -}; - /* HV *paren_names; Optional hash of paren names now stored in the IV union */ @@ -371,11 +365,13 @@ and check for NULL. /* For source compatibility. We used to store these explicitly. */ #define RX_PRECOMP(prog) (RX_WRAPPED(prog) + ((struct regexp *)SvANY(prog))->pre_prefix) +#define RX_PRECOMP_const(prog) (RX_WRAPPED_const(prog) + ((struct regexp *)SvANY(prog))->pre_prefix) /* FIXME? Are we hardcoding too much here and constraining plugin extension writers? Specifically, the value 1 assumes that the wrapped version always has exactly one character at the end, a ')'. Will that always be true? */ #define RX_PRELEN(prog) (RX_WRAPLEN(prog) - ((struct regexp *)SvANY(prog))->pre_prefix - 1) #define RX_WRAPPED(prog) SvPVX(prog) +#define RX_WRAPPED_const(prog) SvPVX_const(prog) #define RX_WRAPLEN(prog) SvCUR(prog) #define RX_CHECK_SUBSTR(prog) (((struct regexp *)SvANY(prog))->check_substr) #define RX_REFCNT(prog) SvREFCNT(prog)