From: Anatoly Burakov Date: Tue, 12 Jan 2016 16:21:20 +0000 (+0000) Subject: Don't look for accel friends for multibyte acceleration X-Git-Tag: v4.2.0^2~167 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=843ca0e7ccb651f4bfc45abcb81a95c34b920256;p=thirdparty%2Fvectorscan.git Don't look for accel friends for multibyte acceleration --- diff --git a/src/nfa/limex_compile.cpp b/src/nfa/limex_compile.cpp index d3e1a8ee..dc372860 100644 --- a/src/nfa/limex_compile.cpp +++ b/src/nfa/limex_compile.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Intel Corporation + * Copyright (c) 2015-2016, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -662,15 +662,18 @@ void doAccelCommon(NGHolder &g, state_set.reset(); state_set.set(state_id); + bool is_multi = false; auto p_it = accel->precalc.find(state_set); if (p_it != accel->precalc.end()) { const precalcAccel &pa = p_it->second; offset = max(pa.double_offset, pa.single_offset); + is_multi = pa.ma_info.type != MultibyteAccelInfo::MAT_NONE; assert(offset <= MAX_ACCEL_DEPTH); } accel->accelerable.insert(v); - findAccelFriends(g, v, br_cyclic, offset, &accel->friends[v]); + if (!is_multi) + findAccelFriends(g, v, br_cyclic, offset, &accel->friends[v]); } }