details: https://hg.nginx.org/njs/rev/993f19791a71 branches: changeset: 1998:993f19791a71 user: Vadim Zhestikov <v.zhesti...@f5.com> date: Mon Nov 14 17:31:03 2022 -0800 description: Masks definition corrected and made regularized.
diffstat: src/njs_scope.h | 26 +++++++++++++++++--------- 1 files changed, 17 insertions(+), 9 deletions(-) diffs (57 lines): diff -r 283ae119d121 -r 993f19791a71 src/njs_scope.h --- a/src/njs_scope.h Mon Nov 14 09:18:37 2022 -0800 +++ b/src/njs_scope.h Mon Nov 14 17:31:03 2022 -0800 @@ -7,12 +7,20 @@ #ifndef _NJS_SCOPE_H_INCLUDED_ #define _NJS_SCOPE_H_INCLUDED_ - +#define NJS_SCOPE_VAR_OFFSET 0 #define NJS_SCOPE_VAR_SIZE 4 -#define NJS_SCOPE_TYPE_OFFSET (NJS_SCOPE_VAR_SIZE + 4) -#define NJS_SCOPE_VALUE_OFFSET (NJS_SCOPE_TYPE_OFFSET + 1) -#define NJS_SCOPE_VALUE_MAX ((1 << (32 - NJS_SCOPE_VALUE_OFFSET)) - 1) -#define NJS_SCOPE_TYPE_MASK ((NJS_SCOPE_VALUE_MAX) << NJS_SCOPE_VAR_SIZE) + +#define NJS_SCOPE_TYPE_OFFSET (NJS_SCOPE_VAR_OFFSET + NJS_SCOPE_VAR_SIZE) +#define NJS_SCOPE_TYPE_SIZE 4 + +#define NJS_SCOPE_VALUE_OFFSET (NJS_SCOPE_TYPE_OFFSET + NJS_SCOPE_TYPE_SIZE) +#define NJS_SCOPE_VALUE_SIZE 24 + +#define NJS_SCOPE_VALUE_MASK ((1 << NJS_SCOPE_VALUE_SIZE) - 1) +#define NJS_SCOPE_VAR_MASK ((1 << NJS_SCOPE_VAR_SIZE) - 1) +#define NJS_SCOPE_TYPE_MASK ((1 << NJS_SCOPE_TYPE_SIZE) - 1) + +#define NJS_SCOPE_VALUE_MAX NJS_SCOPE_VALUE_MASK #define NJS_INDEX_NONE ((njs_index_t) 0) #define NJS_INDEX_ERROR ((njs_index_t) -1) @@ -41,7 +49,7 @@ njs_scope_index(njs_scope_t scope, njs_i type = NJS_LEVEL_GLOBAL; } - return (index << NJS_SCOPE_VALUE_OFFSET) | (type << NJS_SCOPE_VAR_SIZE) + return (index << NJS_SCOPE_VALUE_OFFSET) | (type << NJS_SCOPE_TYPE_OFFSET) | var_type; } @@ -49,15 +57,15 @@ njs_scope_index(njs_scope_t scope, njs_i njs_inline njs_variable_type_t njs_scope_index_var(njs_index_t index) { - return (njs_variable_type_t) (index & ~NJS_SCOPE_TYPE_MASK); + return (njs_variable_type_t) (index & NJS_SCOPE_VAR_MASK); } njs_inline njs_level_type_t njs_scope_index_type(njs_index_t index) { - return (njs_level_type_t) ((index >> NJS_SCOPE_VAR_SIZE) - & ~NJS_SCOPE_TYPE_MASK); + return (njs_level_type_t) ((index >> NJS_SCOPE_TYPE_OFFSET) + & NJS_SCOPE_TYPE_MASK); } _______________________________________________ nginx-devel mailing list -- nginx-devel@nginx.org To unsubscribe send an email to nginx-devel-le...@nginx.org