summaryrefslogtreecommitdiff
path: root/regexp.h
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2006-10-05 16:05:57 +0000
committerDave Mitchell <davem@fdisolutions.com>2006-10-05 16:05:57 +0000
commit24d3c4a93ab7de680c4eca99f7e2d7618f34abb0 (patch)
tree72b0d399f08344cf9015ec2f1c7754caa9bb63b6 /regexp.h
parentc476f4254aaf06aafc9c81d98ebc185b60699523 (diff)
downloadperl-24d3c4a93ab7de680c4eca99f7e2d7618f34abb0.tar.gz
remove REGMATCH detritus and shrink the size of the backtrack structure
p4raw-id: //depot/perl@28945
Diffstat (limited to 'regexp.h')
-rw-r--r--regexp.h18
1 files changed, 2 insertions, 16 deletions
diff --git a/regexp.h b/regexp.h
index 3662f4c277..404866964c 100644
--- a/regexp.h
+++ b/regexp.h
@@ -211,23 +211,8 @@ typedef struct {
typedef I32 CHECKPOINT;
typedef struct regmatch_state {
-
- /* these vars contain state that needs to be maintained
- * across the main while loop ... */
-
int resume_state; /* where to jump to on return */
- regnode *scan; /* Current node. */
- regnode *next; /* Next node. */
- bool minmod; /* the next "{n,m}" is a "{n,m}?" */
- bool sw; /* the condition value in (?(cond)a|b) */
- int logical;
- I32 unwind; /* savestack index of current unwind block */
- char *locinput;
-
- /* ... while the rest of these are local to an individual branch */
-
- I32 n; /* no or next */
- I32 ln; /* len or last */
+ char *locinput; /* where to backtrack in string on failure */
union {
@@ -321,6 +306,7 @@ typedef struct regmatch_state {
/* this first element must match u.yes */
struct regmatch_state *prev_yes_state;
I32 wanted;
+ I32 logical; /* saved copy of 'logical' var */
regnode *me; /* the IFMATCH/SUSPEND/UNLESSM node */
} ifmatch; /* and SUSPEND/UNLESSM */
} u;