8
8
#include <njs_main.h>
9
9
10
10
11
- static njs_int_t njs_lexer_hash_test (njs_lvlhsh_query_t * lhq , void * data );
12
- static njs_int_t njs_atom_hash_test (njs_flathsh_query_t * lhq , void * data );
11
+ static njs_int_t njs_lexer_hash_test (njs_flathsh_query_t * fhq , void * data );
12
+ static njs_int_t njs_atom_hash_test (njs_flathsh_query_t * fhq , void * data );
13
13
14
14
15
15
const njs_value_t njs_atom [] = {
@@ -33,28 +33,26 @@ const njs_value_t njs_atom[] = {
33
33
};
34
34
35
35
36
- const njs_lvlhsh_proto_t njs_lexer_hash_proto
36
+ const njs_flathsh_proto_t njs_lexer_hash_proto
37
37
njs_aligned (64 ) =
38
38
{
39
- NJS_LVLHSH_DEFAULT ,
40
39
njs_lexer_hash_test ,
41
- njs_lvlhsh_alloc ,
42
- njs_lvlhsh_free ,
40
+ njs_flathsh_proto_alloc ,
41
+ njs_flathsh_proto_free ,
43
42
};
44
43
45
44
46
45
const njs_flathsh_proto_t njs_atom_hash_proto
47
46
njs_aligned (64 ) =
48
47
{
49
- 0 ,
50
48
njs_atom_hash_test ,
51
- njs_lvlhsh_alloc ,
52
- njs_lvlhsh_free ,
49
+ njs_flathsh_proto_alloc ,
50
+ njs_flathsh_proto_free ,
53
51
};
54
52
55
53
56
54
static njs_int_t
57
- njs_lexer_hash_test (njs_lvlhsh_query_t * lhq , void * data )
55
+ njs_lexer_hash_test (njs_flathsh_query_t * fhq , void * data )
58
56
{
59
57
u_char * start ;
60
58
njs_value_t * name ;
@@ -63,13 +61,13 @@ njs_lexer_hash_test(njs_lvlhsh_query_t *lhq, void *data)
63
61
64
62
njs_assert (name -> type == NJS_STRING );
65
63
66
- if (lhq -> key .length != name -> string .data -> size ) {
64
+ if (fhq -> key .length != name -> string .data -> size ) {
67
65
return NJS_DECLINED ;
68
66
}
69
67
70
68
start = name -> string .data -> start ;
71
69
72
- if (memcmp (start , lhq -> key .start , lhq -> key .length ) == 0 ) {
70
+ if (memcmp (start , fhq -> key .start , fhq -> key .length ) == 0 ) {
73
71
return NJS_OK ;
74
72
}
75
73
@@ -81,33 +79,33 @@ njs_value_t *
81
79
njs_atom_find_or_add (njs_vm_t * vm , u_char * key , size_t size , size_t length ,
82
80
uint32_t hash )
83
81
{
84
- njs_int_t ret ;
85
- njs_object_prop_t * prop ;
86
- njs_lvlhsh_query_t lhq ;
82
+ njs_int_t ret ;
83
+ njs_object_prop_t * prop ;
84
+ njs_flathsh_query_t fhq ;
87
85
88
- lhq .key .start = key ;
89
- lhq .key .length = size ;
90
- lhq .key_hash = hash ;
91
- lhq .proto = & njs_lexer_hash_proto ;
86
+ fhq .key .start = key ;
87
+ fhq .key .length = size ;
88
+ fhq .key_hash = hash ;
89
+ fhq .proto = & njs_lexer_hash_proto ;
92
90
93
- ret = njs_lvlhsh_find (vm -> atom_hash_current , & lhq );
91
+ ret = njs_flathsh_find (vm -> atom_hash_current , & fhq );
94
92
if (ret == NJS_OK ) {
95
- return njs_prop_value (lhq .value );
93
+ return njs_prop_value (fhq .value );
96
94
}
97
95
98
- ret = njs_lvlhsh_find (& vm -> atom_hash_shared , & lhq );
96
+ ret = njs_flathsh_find (& vm -> atom_hash_shared , & fhq );
99
97
if (ret == NJS_OK ) {
100
- return njs_prop_value (lhq .value );
98
+ return njs_prop_value (fhq .value );
101
99
}
102
100
103
- lhq .pool = vm -> mem_pool ;
101
+ fhq .pool = vm -> mem_pool ;
104
102
105
- ret = njs_lvlhsh_insert (vm -> atom_hash_current , & lhq );
103
+ ret = njs_flathsh_insert (vm -> atom_hash_current , & fhq );
106
104
if (njs_slow_path (ret != NJS_OK )) {
107
105
return NULL ;
108
106
}
109
107
110
- prop = lhq .value ;
108
+ prop = fhq .value ;
111
109
112
110
ret = njs_string_create (vm , & prop -> u .value , key , size );
113
111
if (njs_slow_path (ret != NJS_OK )) {
@@ -130,35 +128,35 @@ static njs_value_t *
130
128
njs_atom_find_or_add_string (njs_vm_t * vm , njs_value_t * value ,
131
129
uint32_t hash )
132
130
{
133
- njs_int_t ret ;
134
- njs_object_prop_t * prop ;
135
- njs_lvlhsh_query_t lhq ;
131
+ njs_int_t ret ;
132
+ njs_object_prop_t * prop ;
133
+ njs_flathsh_query_t fhq ;
136
134
137
135
njs_assert (njs_is_string (value ));
138
136
139
- lhq .key .start = value -> string .data -> start ;
140
- lhq .key .length = value -> string .data -> size ;
141
- lhq .key_hash = hash ;
142
- lhq .proto = & njs_lexer_hash_proto ;
137
+ fhq .key .start = value -> string .data -> start ;
138
+ fhq .key .length = value -> string .data -> size ;
139
+ fhq .key_hash = hash ;
140
+ fhq .proto = & njs_lexer_hash_proto ;
143
141
144
- ret = njs_lvlhsh_find (vm -> atom_hash_current , & lhq );
142
+ ret = njs_flathsh_find (vm -> atom_hash_current , & fhq );
145
143
if (ret == NJS_OK ) {
146
- return njs_prop_value (lhq .value );
144
+ return njs_prop_value (fhq .value );
147
145
}
148
146
149
- ret = njs_lvlhsh_find (& vm -> atom_hash_shared , & lhq );
147
+ ret = njs_flathsh_find (& vm -> atom_hash_shared , & fhq );
150
148
if (ret == NJS_OK ) {
151
- return njs_prop_value (lhq .value );
149
+ return njs_prop_value (fhq .value ); ;
152
150
}
153
151
154
- lhq .pool = vm -> mem_pool ;
152
+ fhq .pool = vm -> mem_pool ;
155
153
156
- ret = njs_lvlhsh_insert (vm -> atom_hash_current , & lhq );
154
+ ret = njs_flathsh_insert (vm -> atom_hash_current , & fhq );
157
155
if (njs_slow_path (ret != NJS_OK )) {
158
156
return NULL ;
159
157
}
160
158
161
- prop = lhq .value ;
159
+ prop = fhq .value ;
162
160
163
161
prop -> u .value = * value ;
164
162
@@ -175,7 +173,7 @@ njs_atom_find_or_add_string(njs_vm_t *vm, njs_value_t *value,
175
173
176
174
177
175
static njs_int_t
178
- njs_atom_hash_test (njs_flathsh_query_t * lhq , void * data )
176
+ njs_atom_hash_test (njs_flathsh_query_t * fhq , void * data )
179
177
{
180
178
size_t size ;
181
179
u_char * start ;
@@ -184,25 +182,25 @@ njs_atom_hash_test(njs_flathsh_query_t *lhq, void *data)
184
182
name = data ;
185
183
186
184
if (name -> type == NJS_STRING
187
- && ((njs_value_t * ) lhq -> value )-> type == NJS_STRING )
185
+ && ((njs_value_t * ) fhq -> value )-> type == NJS_STRING )
188
186
{
189
187
size = name -> string .data -> length ;
190
188
191
- if (lhq -> key .length != size ) {
189
+ if (fhq -> key .length != size ) {
192
190
return NJS_DECLINED ;
193
191
}
194
192
195
193
start = (u_char * ) name -> string .data -> start ;
196
194
197
- if (memcmp (start , lhq -> key .start , lhq -> key .length ) == 0 ) {
195
+ if (memcmp (start , fhq -> key .start , fhq -> key .length ) == 0 ) {
198
196
return NJS_OK ;
199
197
}
200
198
}
201
199
202
200
if (name -> type == NJS_SYMBOL
203
- && ((njs_value_t * ) lhq -> value )-> type == NJS_SYMBOL )
201
+ && ((njs_value_t * ) fhq -> value )-> type == NJS_SYMBOL )
204
202
{
205
- if (lhq -> key_hash == name -> atom_id ) {
203
+ if (fhq -> key_hash == name -> atom_id ) {
206
204
return NJS_OK ;
207
205
}
208
206
}
@@ -219,23 +217,23 @@ njs_atom_hash_init(njs_vm_t *vm)
219
217
njs_int_t ret ;
220
218
njs_uint_t n ;
221
219
const njs_value_t * value , * values ;
222
- njs_flathsh_query_t lhq ;
220
+ njs_flathsh_query_t fhq ;
223
221
224
222
values = & njs_atom [0 ];
225
223
226
- njs_lvlhsh_init (& vm -> atom_hash_shared );
224
+ njs_flathsh_init (& vm -> atom_hash_shared );
227
225
228
- lhq .replace = 0 ;
229
- lhq .proto = & njs_atom_hash_proto ;
230
- lhq .pool = vm -> mem_pool ;
226
+ fhq .replace = 0 ;
227
+ fhq .proto = & njs_atom_hash_proto ;
228
+ fhq .pool = vm -> mem_pool ;
231
229
232
230
for (n = 0 ; n < NJS_ATOM_SIZE ; n ++ ) {
233
231
value = & values [n ];
234
232
235
233
if (value -> type == NJS_SYMBOL ) {
236
- lhq .key_hash = value -> string .atom_id ;
234
+ fhq .key_hash = value -> string .atom_id ;
237
235
238
- ret = njs_flathsh_insert (& vm -> atom_hash_shared , & lhq );
236
+ ret = njs_flathsh_insert (& vm -> atom_hash_shared , & fhq );
239
237
if (njs_slow_path (ret != NJS_OK )) {
240
238
njs_internal_error (vm , "flathsh insert/replace failed" );
241
239
return 0xffffffff ;
@@ -246,18 +244,18 @@ njs_atom_hash_init(njs_vm_t *vm)
246
244
start = value -> string .data -> start ;
247
245
len = value -> string .data -> length ;
248
246
249
- lhq .key_hash = njs_djb_hash (start , len );
250
- lhq .key .length = len ;
251
- lhq .key .start = start ;
247
+ fhq .key_hash = njs_djb_hash (start , len );
248
+ fhq .key .length = len ;
249
+ fhq .key .start = start ;
252
250
253
- ret = njs_flathsh_insert (& vm -> atom_hash_shared , & lhq );
251
+ ret = njs_flathsh_insert (& vm -> atom_hash_shared , & fhq );
254
252
if (njs_slow_path (ret != NJS_OK )) {
255
253
njs_internal_error (vm , "flathsh insert/replace failed" );
256
254
return 0xffffffff ;
257
255
}
258
256
}
259
257
260
- * njs_prop_value (lhq .value ) = * value ;
258
+ * njs_prop_value (fhq .value ) = * value ;
261
259
}
262
260
263
261
vm -> atom_hash_current = & vm -> atom_hash_shared ;
@@ -349,26 +347,26 @@ njs_int_t
349
347
njs_atom_symbol_add (njs_vm_t * vm , njs_value_t * value )
350
348
{
351
349
njs_int_t ret ;
352
- njs_flathsh_query_t lhq ;
350
+ njs_flathsh_query_t fhq ;
353
351
354
352
njs_assert (value -> atom_id == NJS_ATOM_STRING_unknown );
355
353
356
- lhq .replace = 0 ;
357
- lhq .proto = & njs_lexer_hash_proto ;
358
- lhq .pool = vm -> mem_pool ;
354
+ fhq .replace = 0 ;
355
+ fhq .proto = & njs_lexer_hash_proto ;
356
+ fhq .pool = vm -> mem_pool ;
359
357
360
358
value -> atom_id = vm -> atom_id_generator ++ ;
361
359
362
360
if (value -> type == NJS_SYMBOL ) {
363
- lhq .key_hash = value -> atom_id ;
361
+ fhq .key_hash = value -> atom_id ;
364
362
365
- ret = njs_flathsh_insert (vm -> atom_hash_current , & lhq );
363
+ ret = njs_flathsh_insert (vm -> atom_hash_current , & fhq );
366
364
if (njs_slow_path (ret != NJS_OK )) {
367
365
njs_internal_error (vm , "flathsh insert/replace failed" );
368
366
return NJS_ERROR ;
369
367
}
370
368
371
- * njs_prop_value (lhq .value ) = * value ;
369
+ * njs_prop_value (fhq .value ) = * value ;
372
370
}
373
371
374
372
return NJS_OK ;
0 commit comments