summaryrefslogtreecommitdiff
path: root/regexec.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-11-27 08:02:35 +0000
committerNicholas Clark <nick@ccl4.org>2006-11-27 08:02:35 +0000
commit2b8b47818cbb3c4bb890eb720fdb914578831f39 (patch)
tree4b86d84c82b0f28be0ac53548df68f301cf39ee0 /regexec.c
parent55eed6530071fdede680c5313b36f33946ae9956 (diff)
downloadperl-2b8b47818cbb3c4bb890eb720fdb914578831f39.tar.gz
Move words and revcharmap out of struct _rev_trie_data and duplicate
them on thread clone. p4raw-id: //depot/perl@29394
Diffstat (limited to 'regexec.c')
-rw-r--r--regexec.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/regexec.c b/regexec.c
index 4e3785bda6..b54a4cb880 100644
--- a/regexec.c
+++ b/regexec.c
@@ -2947,9 +2947,9 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
if ( ST.accepted == 1 ) {
/* only one choice left - just continue */
DEBUG_EXECUTE_r({
- reg_trie_data * const trie
- = (reg_trie_data*)rexi->data->data[ ARG(ST.me) ];
- SV ** const tmp = av_fetch( trie->words,
+ AV *const trie_words
+ = (AV *) rexi->data->data[ARG(ST.me)+TRIE_WORDS_OFFSET];
+ SV ** const tmp = av_fetch( trie_words,
ST.accept_buff[ 0 ].wordnum-1, 0 );
SV *sv= tmp ? sv_newmortal() : NULL;
@@ -3028,9 +3028,9 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
}
DEBUG_EXECUTE_r({
- reg_trie_data * const trie
- = (reg_trie_data*)rexi->data->data[ ARG(ST.me) ];
- SV ** const tmp = av_fetch( trie->words,
+ AV *const trie_words
+ = (AV *) rexi->data->data[ARG(ST.me)+TRIE_WORDS_OFFSET];
+ SV ** const tmp = av_fetch( trie_words,
ST.accept_buff[ best ].wordnum - 1, 0 );
regnode *nextop=(!ST.jump || !ST.jump[ST.accept_buff[best].wordnum]) ?
ST.B :