From owner-svn-src-user@FreeBSD.ORG Mon Aug 15 18:49:43 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 52B86106564A; Mon, 15 Aug 2011 18:49:43 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 29AC98FC0C; Mon, 15 Aug 2011 18:49:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p7FInhtS023153; Mon, 15 Aug 2011 18:49:43 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p7FInhX8023150; Mon, 15 Aug 2011 18:49:43 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201108151849.p7FInhX8023150@svn.freebsd.org> From: Gabor Kovesdan Date: Mon, 15 Aug 2011 18:49:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r224897 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Aug 2011 18:49:43 -0000 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;