mirror of
https://github.com/privacore/open-source-search-engine.git
synced 2025-07-16 02:46:08 -04:00
Optimize fctypes.h macros is_ascii(), is_ascii9(), is_ascii3(), is_wspace_a() by using simple conditionals instead of table lookups
This commit is contained in:
committed by
Ai Lin Chia
parent
9d240694f0
commit
4f71098963
73
fctypes.cpp
73
fctypes.cpp
@ -290,42 +290,6 @@ bool print128 ( key128_t *kp ) {
|
||||
0,0,0,0,0,0,0,0, // 240
|
||||
0,0,0,0,0,0,0,0}; // 248
|
||||
|
||||
// ' ' '\n' '\t' '\r'
|
||||
const char g_map_is_wspace[] = {
|
||||
0,0,0,0,0,0,0,0, // 0 -7
|
||||
0,1,1,0,0,1,0,0, // \t=9 \n = 10 \r = 13
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
1,0,0,0,0,0,0,0, // space=32
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0, // 64
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0, // 88
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0, // 15*8
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0, // 160 -- turn off 160, it might be utf8 byte
|
||||
0,0,0,0,0,0,0,0, // 168
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0, // 192
|
||||
0,0,0,0,0,0,0,0, // 200
|
||||
0,0,0,0,0,0,0,0, // 208
|
||||
0,0,0,0,0,0,0,0, // 216
|
||||
0,0,0,0,0,0,0,0, // 224
|
||||
0,0,0,0,0,0,0,0, // 232
|
||||
0,0,0,0,0,0,0,0, // 240
|
||||
0,0,0,0,0,0,0,0}; // 248
|
||||
|
||||
|
||||
// '\n'
|
||||
const char g_map_is_vspace[] = {
|
||||
0,0,0,0,0,0,0,0, // 0 -7
|
||||
@ -502,43 +466,6 @@ const char g_map_is_vowel[] = {
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0};
|
||||
|
||||
// just from 0-127, used by the inlined *_utf8() functions in fctypes.h
|
||||
const char g_map_is_ascii3[] = { // 32 to 126
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1, // 32
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
1,1,1,1,1,1,1,1,
|
||||
0,0,0,0,0,0,0,0, // 128
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0};
|
||||
|
||||
|
||||
|
||||
const char g_map_is_iso[] = { // 32 to 126
|
||||
0,0,0,0,0,0,0,0, // 0
|
||||
0,0,0,0,0,0,0,0, // 8
|
||||
|
@ -232,12 +232,12 @@ bool saveTimeAdjustment ( ) ;
|
||||
#define canBeInTagName(c) g_map_canBeInTagName[(unsigned char)c]
|
||||
#define is_control_a(c) g_map_is_control[(unsigned char)c]
|
||||
#define is_binary_a(c) g_map_is_binary[(unsigned char)c]
|
||||
#define is_wspace_a(c) g_map_is_wspace[(unsigned char)c]
|
||||
#define is_wspace_a(c) (((c)==32) || ((c)==9) || ((c)==10) || ((c)==13))
|
||||
#define is_vspace_a(c) g_map_is_vspace[(unsigned char)c]
|
||||
#define is_hspace_a(c) g_map_is_hspace[(unsigned char)c]
|
||||
#define is_ascii(c) g_map_is_ascii[(unsigned char)c]
|
||||
#define is_ascii9(c) g_map_is_ascii[(unsigned char)c]
|
||||
#define is_ascii3(c) ((unsigned char)c<128 || g_map_is_ascii3[(unsigned char)c])
|
||||
#define is_ascii(c) (((c)>=32) && ((c)<=126))
|
||||
#define is_ascii9(c) (((c)>=32) && ((c)<=126))
|
||||
#define is_ascii3(c) ((unsigned char)c<128)
|
||||
#define is_punct_a(c) g_map_is_punct[(unsigned char)c]
|
||||
#define is_alnum_a(c) g_map_is_alnum[(unsigned char)c]
|
||||
#define is_alpha_a(c) g_map_is_alpha[(unsigned char)c]
|
||||
|
Reference in New Issue
Block a user