I've just pushed these: >From b75dd4e9ffd42ec32f80f4d978c5e53dc6e7466e Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Tue, 9 Mar 2010 15:02:41 +0100 Subject: [PATCH 1/3] dfa: avoid a leak (work_mbc->chars)
* src/dfa.c (parse_bracket_exp_mb): Remove useless (and leaked MALLOC). --- src/dfa.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 3122e22..90f88f5 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -498,7 +498,6 @@ parse_bracket_exp_mb (void) chars_al = 1; range_sts_al = range_ends_al = 0; ch_classes_al = equivs_al = coll_elems_al = 0; - MALLOC(work_mbc->chars, wchar_t, chars_al); work_mbc->nchars = work_mbc->nranges = work_mbc->nch_classes = 0; work_mbc->nequivs = work_mbc->ncoll_elems = 0; -- 1.7.0.2.329.gdaec6 >From 9a66765d2debd8de60484d335d607c79e9560c10 Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Tue, 9 Mar 2010 15:05:37 +0100 Subject: [PATCH 2/3] dfa: sync a tiny change from gawk * src/dfa.c (state_index) [MBS_SUPPORT]: Initialize .mpbs.nelem member unconditionally. Also initialize .mbps.elems. --- src/dfa.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 90f88f5..4940997 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -1569,8 +1569,8 @@ state_index (struct dfa *d, position_set const *s, int newline, int letter) d->states[i].constraint = 0; d->states[i].first_end = 0; #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1) - d->states[i].mbps.nelem = 0; + d->states[i].mbps.nelem = 0; + d->states[i].mbps.elems = NULL; #endif for (j = 0; j < s->nelem; ++j) if (d->tokens[s->elems[j].index] < 0) -- 1.7.0.2.329.gdaec6 >From e7ac1655abb37764bb0c1ff84c6a57efef24743a Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Tue, 9 Mar 2010 15:06:33 +0100 Subject: [PATCH 3/3] dfa: remove a trailing blank * src/dfa.c (dfaexec): No trailing blanks allowed. --- src/dfa.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 4940997..2567bc2 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -2932,7 +2932,7 @@ dfaexec (struct dfa *d, char const *begin, size_t size, int *backref) continue; } - /* Can match with a multibyte character (and multicharacter + /* Can match with a multibyte character (and multicharacter collating element). Transition table might be updated. */ s = transit_state(d, s, &p); trans = d->trans; -- 1.7.0.2.329.gdaec6
