boyermoore: avoid one tolower call

Fixes #1218
pull/4139/head
Philippe Antoine 7 years ago committed by Victor Julien
parent 86deaefe66
commit aa73d834b5

@ -178,6 +178,7 @@ extern uint16_t g_vlan_mask;
#include <ctype.h>
#define u8_tolower(c) tolower((uint8_t)(c))
#define u8_toupper(c) toupper((uint8_t)(c))
void EngineStop(void);
void EngineDone(void);

@ -221,6 +221,7 @@ static void PreBmBcNocase(const uint8_t *x, uint16_t m, uint16_t *bmBc)
}
for (i = 0; i < m - 1; ++i) {
bmBc[u8_tolower((unsigned char)x[i])] = m - 1 - i;
bmBc[u8_toupper((unsigned char)x[i])] = m - 1 - i;
}
}
@ -372,7 +373,7 @@ uint8_t *BoyerMooreNocase(const uint8_t *x, uint16_t m, const uint8_t *y, uint32
if (i < 0) {
return (uint8_t *)(y + j);
} else {
j += (m1 = bmGs[i]) > (m2 = bmBc[u8_tolower(y[i + j])] - m + 1 + i)?
j += (m1 = bmGs[i]) > (m2 = bmBc[y[i + j]] - m + 1 + i)?
m1: m2;
}
}

Loading…
Cancel
Save