Date: Mon, 15 Aug 2011 18:49:43 +0000 (UTC) From: Gabor Kovesdan <gabor@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r224897 - user/gabor/tre-integration/contrib/tre/lib Message-ID: <201108151849.p7FInhX8023150@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gabor Date: Mon Aug 15 18:49:42 2011 New Revision: 224897 URL: http://svn.freebsd.org/changeset/base/224897 Log: - Do not limit pattern length Modified: user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.h Modified: user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c Mon Aug 15 18:07:41 2011 (r224896) +++ user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c Mon Aug 15 18:49:42 2011 (r224897) @@ -239,14 +239,24 @@ static int fastcmp(const void *, const v */ #define FILL_BMGS \ if (!fg->hasdot) \ - _FILL_BMGS(fg->sbmGs, fg->pattern, fg->len, false); + { \ + fg->sbmGs = xmalloc(fg->len * sizeof(int)); \ + if (!fg->sbmGs) \ + return REG_ESPACE; \ + _FILL_BMGS(fg->sbmGs, fg->pattern, fg->len, false); \ + } /* * Fills in the good suffix table for wide strings. */ #define FILL_BMGS_WIDE \ if (!fg->hasdot) \ - _FILL_BMGS(fg->bmGs, fg->wpattern, fg->wlen, true); + { \ + fg->bmGs = xmalloc(fg->wlen * sizeof(int)); \ + if (!fg->bmGs) \ + return REG_ESPACE; \ + _FILL_BMGS(fg->bmGs, fg->wpattern, fg->wlen, true); \ + } #define _FILL_BMGS(arr, pat, plen, wide) \ { \ @@ -634,8 +644,12 @@ tre_free_fast(fastmatch_t *fg) #ifdef TRE_WCHAR hashtable_free(fg->qsBc_table); + if (!fg->hasdot) + xfree(fg->bmGs); xfree(fg->wpattern); #endif + if (!fg->hasdot) + xfree(fg->sbmGs); xfree(fg->pattern); } Modified: user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.h ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.h Mon Aug 15 18:07:41 2011 (r224896) +++ user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.h Mon Aug 15 18:49:42 2011 (r224897) @@ -35,21 +35,17 @@ #include "hashtable.h" #include "tre-internal.h" -#define BM_MAX_LEN 1024 - typedef struct { size_t wlen; size_t len; tre_char_t *wpattern; int hasdot; int qsBc[UCHAR_MAX + 1]; - int bmGs[BM_MAX_LEN]; -#ifdef TRE_WCHAR + int *bmGs; char *pattern; int defBc; hashtable *qsBc_table; - int sbmGs[BM_MAX_LEN]; -#endif + int *sbmGs; /* flags */ bool bol; bool eol;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201108151849.p7FInhX8023150>