From owner-svn-src-user@FreeBSD.ORG Thu Feb 16 14:54:20 2012 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 BB458106564A; Thu, 16 Feb 2012 14:54:20 +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 A5D5D8FC12; Thu, 16 Feb 2012 14:54:20 +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 q1GEsK8c021531; Thu, 16 Feb 2012 14:54:20 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1GEsKTN021528; Thu, 16 Feb 2012 14:54:20 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201202161454.q1GEsKTN021528@svn.freebsd.org> From: Gabor Kovesdan Date: Thu, 16 Feb 2012 14:54:20 +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: r231824 - in user/gabor/tre-integration: contrib/tre/lib include 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: Thu, 16 Feb 2012 14:54:20 -0000 Author: gabor Date: Thu Feb 16 14:54:20 2012 New Revision: 231824 URL: http://svn.freebsd.org/changeset/base/231824 Log: - Take wmsearch_t instead of mregex_t because the fields of the latter belong to higher level code - In mregex_t, it is necessary to store the number of fragments that will be used for multiple pattern heuristic matching Modified: user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.c user/gabor/tre-integration/include/mregex.h Modified: user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.c Thu Feb 16 14:44:52 2012 (r231823) +++ user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.c Thu Feb 16 14:54:20 2012 (r231824) @@ -167,11 +167,10 @@ */ int -tre_wmcomp(mregex_t *preg, size_t nr, const char *regex[], +tre_wmcomp(wmsearch_t *wm, size_t nr, const tre_char_t *regex[], size_t n[], int cflags) { wmentry_t *entry = NULL; - wmsearch_t *wm = NULL; int err; #ifdef TRE_WCHAR char **bregex; @@ -179,7 +178,6 @@ tre_wmcomp(mregex_t *preg, size_t nr, co #endif ALLOC(wm, sizeof(wmsearch_t)); - preg->n = nr; #ifdef TRE_WCHAR PROC_WM_WIDE(regex, n); @@ -216,7 +214,6 @@ tre_wmcomp(mregex_t *preg, size_t nr, co SAVE_PATTERNS; #endif - preg->searchdata = &wm; return REG_OK; fail: #ifdef TRE_WCHAR @@ -295,13 +292,12 @@ fail: int tre_wmexec(const void *str, size_t len, tre_str_type_t type, size_t nmatch, regmatch_t pmatch[], int eflags, - const mregex_t *preg, regmatch_t *match) + const wmsearch_t *wm, regmatch_t *match) { - wmsearch_t *wm = preg->wm; wmentry_t *s_entry, *p_entry; tre_char_t *wide_str = str; char *byte_str = str; - size_t pos = preg->m; + size_t pos = (type == STR_WIDE) ? wm->wm : wm->m; size_t shift; int ret; int err = REG_NOMATCH; @@ -327,9 +323,8 @@ finish: } void -wmfree(mregex_t *preg) +tre_wmfree(wmsearch_t *wm) { - wmsearch_t wm = preg->wm; if (wm->hash) hashtable_free(wm->hash); Modified: user/gabor/tre-integration/include/mregex.h ============================================================================== --- user/gabor/tre-integration/include/mregex.h Thu Feb 16 14:44:52 2012 (r231823) +++ user/gabor/tre-integration/include/mregex.h Thu Feb 16 14:54:20 2012 (r231824) @@ -8,6 +8,7 @@ typedef struct { size_t k; /* Number of patterns */ regex_t *patterns; /* regex_t structure for each pattern */ + size_t mfrag; /* Number of fragments */ void *searchdata; } mregex_t;