@@ -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 );
8181static 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
8787static 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 );
8989static 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 );
9191static 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 );
9494static 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 );
9696static 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 );
9999static 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 );
101101static 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
717717njs_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
10861086njs_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
12471246static 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
12961291static 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
13481343static 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
14371432static 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
14841479static 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
15261521static 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