Skip to content

Commit 6d74d4e

Browse files
committed
Modules: replaced njs_str_t with ngx_str_t in the shared dictionary.
This is a preparatory patch for upcoming changes to unify common code for njs and QuickJS engines.
1 parent 36aec3d commit 6d74d4e

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

nginx/ngx_js_shared_dict.c

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -79,25 +79,25 @@ static njs_int_t njs_js_ext_shared_dict_type(njs_vm_t *vm,
7979
njs_object_prop_t *prop, uint32_t unused, njs_value_t *value,
8080
njs_value_t *setval, njs_value_t *retval);
8181
static ngx_js_dict_node_t *ngx_js_dict_lookup(ngx_js_dict_t *dict,
82-
njs_str_t *key);
82+
ngx_str_t *key);
8383

8484
#define NGX_JS_DICT_FLAG_MUST_EXIST 1
8585
#define NGX_JS_DICT_FLAG_MUST_NOT_EXIST 2
8686

8787
static ngx_int_t ngx_js_dict_set(njs_vm_t *vm, ngx_js_dict_t *dict,
88-
njs_str_t *key, njs_value_t *value, ngx_msec_t timeout, unsigned flags);
88+
ngx_str_t *key, njs_value_t *value, ngx_msec_t timeout, unsigned flags);
8989
static ngx_int_t ngx_js_dict_add(njs_vm_t *vm, ngx_js_dict_t *dict,
90-
njs_str_t *key, njs_value_t *value, ngx_msec_t timeout, ngx_msec_t now);
90+
ngx_str_t *key, njs_value_t *value, ngx_msec_t timeout, ngx_msec_t now);
9191
static ngx_int_t ngx_js_dict_update(njs_vm_t *vm, ngx_js_dict_t *dict,
9292
ngx_js_dict_node_t *node, njs_value_t *value, ngx_msec_t timeout,
9393
ngx_msec_t now);
9494
static ngx_int_t ngx_js_dict_get(njs_vm_t *vm, ngx_js_dict_t *dict,
95-
njs_str_t *key, njs_value_t *retval);
95+
ngx_str_t *key, njs_value_t *retval);
9696
static ngx_int_t ngx_js_dict_incr(njs_vm_t *vm, ngx_js_dict_t *dict,
97-
njs_str_t *key, njs_value_t *delta, njs_value_t *init, double *value,
97+
ngx_str_t *key, njs_value_t *delta, njs_value_t *init, double *value,
9898
ngx_msec_t timeout);
9999
static ngx_int_t ngx_js_dict_delete(njs_vm_t *vm, ngx_js_dict_t *dict,
100-
njs_str_t *key, njs_value_t *retval);
100+
ngx_str_t *key, njs_value_t *retval);
101101
static ngx_int_t ngx_js_dict_copy_value_locked(njs_vm_t *vm,
102102
ngx_js_dict_t *dict, ngx_js_dict_node_t *node, njs_value_t *retval);
103103

@@ -662,7 +662,7 @@ njs_js_ext_shared_dict_delete(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
662662
njs_index_t unused, njs_value_t *retval)
663663
{
664664
ngx_int_t rc;
665-
njs_str_t key;
665+
ngx_str_t key;
666666
ngx_shm_zone_t *shm_zone;
667667

668668
shm_zone = njs_vm_external(vm, ngx_js_shared_dict_proto_id,
@@ -672,7 +672,7 @@ njs_js_ext_shared_dict_delete(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
672672
return NJS_ERROR;
673673
}
674674

675-
if (ngx_js_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
675+
if (ngx_js_ngx_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
676676
return NJS_ERROR;
677677
}
678678

@@ -689,7 +689,7 @@ njs_js_ext_shared_dict_get(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
689689
njs_index_t unused, njs_value_t *retval)
690690
{
691691
ngx_int_t rc;
692-
njs_str_t key;
692+
ngx_str_t key;
693693
ngx_shm_zone_t *shm_zone;
694694

695695
shm_zone = njs_vm_external(vm, ngx_js_shared_dict_proto_id,
@@ -699,7 +699,7 @@ njs_js_ext_shared_dict_get(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
699699
return NJS_ERROR;
700700
}
701701

702-
if (ngx_js_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
702+
if (ngx_js_ngx_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
703703
return NJS_ERROR;
704704
}
705705

@@ -717,7 +717,7 @@ static njs_int_t
717717
njs_js_ext_shared_dict_has(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
718718
njs_index_t unused, njs_value_t *retval)
719719
{
720-
njs_str_t key;
720+
ngx_str_t key;
721721
ngx_msec_t now;
722722
ngx_time_t *tp;
723723
ngx_js_dict_t *dict;
@@ -731,7 +731,7 @@ njs_js_ext_shared_dict_has(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
731731
return NJS_ERROR;
732732
}
733733

734-
if (ngx_js_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
734+
if (ngx_js_ngx_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
735735
return NJS_ERROR;
736736
}
737737

@@ -851,7 +851,7 @@ njs_js_ext_shared_dict_incr(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
851851
{
852852
double value;
853853
ngx_int_t rc;
854-
njs_str_t key;
854+
ngx_str_t key;
855855
ngx_msec_t timeout;
856856
njs_value_t *delta, *init, *timeo;
857857
ngx_js_dict_t *dict;
@@ -872,7 +872,7 @@ njs_js_ext_shared_dict_incr(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
872872
return NJS_ERROR;
873873
}
874874

875-
if (ngx_js_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
875+
if (ngx_js_ngx_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
876876
return NJS_ERROR;
877877
}
878878

@@ -1058,7 +1058,7 @@ njs_js_ext_shared_dict_pop(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
10581058
njs_index_t unused, njs_value_t *retval)
10591059
{
10601060
ngx_int_t rc;
1061-
njs_str_t key;
1061+
ngx_str_t key;
10621062
ngx_shm_zone_t *shm_zone;
10631063

10641064
shm_zone = njs_vm_external(vm, ngx_js_shared_dict_proto_id,
@@ -1068,7 +1068,7 @@ njs_js_ext_shared_dict_pop(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
10681068
return NJS_ERROR;
10691069
}
10701070

1071-
if (ngx_js_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
1071+
if (ngx_js_ngx_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
10721072
return NJS_ERROR;
10731073
}
10741074

@@ -1086,7 +1086,7 @@ static njs_int_t
10861086
njs_js_ext_shared_dict_set(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
10871087
njs_index_t flags, njs_value_t *retval)
10881088
{
1089-
njs_str_t key;
1089+
ngx_str_t key;
10901090
ngx_int_t rc;
10911091
ngx_msec_t timeout;
10921092
njs_value_t *value, *timeo;
@@ -1100,7 +1100,7 @@ njs_js_ext_shared_dict_set(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
11001100
return NJS_ERROR;
11011101
}
11021102

1103-
if (ngx_js_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
1103+
if (ngx_js_ngx_string(vm, njs_arg(args, nargs, 1), &key) != NGX_OK) {
11041104
return NJS_ERROR;
11051105
}
11061106

@@ -1218,7 +1218,7 @@ njs_js_ext_shared_dict_type(njs_vm_t *vm, njs_object_prop_t *prop,
12181218
uint32_t unused, njs_value_t *value, njs_value_t *setval,
12191219
njs_value_t *retval)
12201220
{
1221-
njs_str_t type;
1221+
ngx_str_t type;
12221222
ngx_js_dict_t *dict;
12231223
ngx_shm_zone_t *shm_zone;
12241224

@@ -1229,36 +1229,31 @@ njs_js_ext_shared_dict_type(njs_vm_t *vm, njs_object_prop_t *prop,
12291229
}
12301230

12311231
dict = shm_zone->data;
1232-
12331232
switch (dict->type) {
12341233
case NGX_JS_DICT_TYPE_STRING:
1235-
type = njs_str_value("string");
1234+
ngx_str_set(&type, "string");
12361235
break;
12371236

12381237
default:
1239-
type = njs_str_value("number");
1238+
ngx_str_set(&type, "number");
12401239
break;
12411240
}
12421241

1243-
return njs_vm_value_string_create(vm, retval, type.start, type.length);
1242+
return njs_vm_value_string_create(vm, retval, type.data, type.len);
12441243
}
12451244

12461245

12471246
static ngx_js_dict_node_t *
1248-
ngx_js_dict_lookup(ngx_js_dict_t *dict, njs_str_t *key)
1247+
ngx_js_dict_lookup(ngx_js_dict_t *dict, ngx_str_t *key)
12491248
{
12501249
uint32_t hash;
1251-
ngx_str_t k;
12521250
ngx_rbtree_t *rbtree;
12531251

12541252
rbtree = &dict->sh->rbtree;
12551253

1256-
hash = ngx_crc32_long(key->start, key->length);
1257-
1258-
k.data = key->start;
1259-
k.len = key->length;
1254+
hash = ngx_crc32_long(key->data, key->len);
12601255

1261-
return (ngx_js_dict_node_t *) ngx_str_rbtree_lookup(rbtree, &k, hash);
1256+
return (ngx_js_dict_node_t *) ngx_str_rbtree_lookup(rbtree, key, hash);
12621257
}
12631258

12641259

@@ -1294,7 +1289,7 @@ ngx_js_dict_node_free(ngx_js_dict_t *dict, ngx_js_dict_node_t *node)
12941289

12951290

12961291
static ngx_int_t
1297-
ngx_js_dict_set(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
1292+
ngx_js_dict_set(njs_vm_t *vm, ngx_js_dict_t *dict, ngx_str_t *key,
12981293
njs_value_t *value, ngx_msec_t timeout, unsigned flags)
12991294
{
13001295
ngx_msec_t now;
@@ -1346,7 +1341,7 @@ ngx_js_dict_set(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
13461341

13471342

13481343
static ngx_int_t
1349-
ngx_js_dict_add(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
1344+
ngx_js_dict_add(njs_vm_t *vm, ngx_js_dict_t *dict, ngx_str_t *key,
13501345
njs_value_t *value, ngx_msec_t timeout, ngx_msec_t now)
13511346
{
13521347
size_t n;
@@ -1358,8 +1353,8 @@ ngx_js_dict_add(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
13581353
ngx_js_dict_expire(dict, now);
13591354
}
13601355

1361-
n = sizeof(ngx_js_dict_node_t) + key->length;
1362-
hash = ngx_crc32_long(key->start, key->length);
1356+
n = sizeof(ngx_js_dict_node_t) + key->len;
1357+
hash = ngx_crc32_long(key->data, key->len);
13631358

13641359
node = ngx_js_dict_alloc(dict, n);
13651360
if (node == NULL) {
@@ -1385,8 +1380,8 @@ ngx_js_dict_add(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
13851380

13861381
node->sn.node.key = hash;
13871382

1388-
ngx_memcpy(node->sn.str.data, key->start, key->length);
1389-
node->sn.str.len = key->length;
1383+
ngx_memcpy(node->sn.str.data, key->data, key->len);
1384+
node->sn.str.len = key->len;
13901385

13911386
ngx_rbtree_insert(&dict->sh->rbtree, &node->sn.node);
13921387

@@ -1435,7 +1430,7 @@ ngx_js_dict_update(njs_vm_t *vm, ngx_js_dict_t *dict, ngx_js_dict_node_t *node,
14351430

14361431

14371432
static ngx_int_t
1438-
ngx_js_dict_delete(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
1433+
ngx_js_dict_delete(njs_vm_t *vm, ngx_js_dict_t *dict, ngx_str_t *key,
14391434
njs_value_t *retval)
14401435
{
14411436
ngx_int_t rc;
@@ -1482,7 +1477,7 @@ ngx_js_dict_delete(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
14821477

14831478

14841479
static ngx_int_t
1485-
ngx_js_dict_incr(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
1480+
ngx_js_dict_incr(njs_vm_t *vm, ngx_js_dict_t *dict, ngx_str_t *key,
14861481
njs_value_t *delta, njs_value_t *init, double *value, ngx_msec_t timeout)
14871482
{
14881483
ngx_msec_t now;
@@ -1524,7 +1519,7 @@ ngx_js_dict_incr(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
15241519

15251520

15261521
static ngx_int_t
1527-
ngx_js_dict_get(njs_vm_t *vm, ngx_js_dict_t *dict, njs_str_t *key,
1522+
ngx_js_dict_get(njs_vm_t *vm, ngx_js_dict_t *dict, ngx_str_t *key,
15281523
njs_value_t *retval)
15291524
{
15301525
ngx_int_t rc;

0 commit comments

Comments
 (0)