From: Valentin Bartenev Date: Tue, 26 Jun 2018 15:25:22 +0000 (+0300) Subject: Introduced nxt_length() macro. X-Git-Tag: 0.2.3~35 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=721dd3364e50a0e3a8ee5358aa7185e891ff91fc;p=njs.git Introduced nxt_length() macro. --- diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index 7001645e..a9b6c35a 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -1157,9 +1157,9 @@ ngx_http_js_ext_set_header_out(njs_vm_t *vm, void *obj, uintptr_t data, h->value.data = p; h->value.len = value->length; - if (h->key.len == sizeof("Content-Length") - 1 + if (h->key.len == nxt_length("Content-Length") && ngx_strncasecmp(h->key.data, (u_char *) "Content-Length", - sizeof("Content-Length") - 1) == 0) + nxt_length("Content-Length")) == 0) { n = ngx_atoi(value->start, value->length); if (n == NGX_ERROR) { diff --git a/njs/njs.c b/njs/njs.c index dc5907eb..a7184b79 100644 --- a/njs/njs.c +++ b/njs/njs.c @@ -131,7 +131,7 @@ njs_vm_create(njs_vm_opt_t *options) nxt_lvlhsh_init(&vm->shared->values_hash); pattern = njs_regexp_pattern_create(vm, (u_char *) "(?:)", - sizeof("(?:)") - 1, 0); + nxt_length("(?:)"), 0); if (nxt_slow_path(pattern == NULL)) { return NULL; } diff --git a/njs/njs_extern.c b/njs/njs_extern.c index 2a915ba9..d24b437d 100644 --- a/njs/njs_extern.c +++ b/njs/njs_extern.c @@ -273,7 +273,7 @@ found: len = 0; for (pr = head; pr != NULL; pr = pr->next) { - len += pr->str.length + sizeof(".") - 1; + len += pr->str.length + nxt_length("."); } buf = nxt_mem_cache_zalloc(vm->mem_cache_pool, len); diff --git a/njs/njs_json.c b/njs/njs_json.c index 938110ba..3d14948a 100644 --- a/njs/njs_json.c +++ b/njs/njs_json.c @@ -1400,19 +1400,19 @@ done: * The value to stringify is wrapped as '{"": value}'. * An empty object means empty result. */ - if (str.length <= sizeof("{\n\n}") - 1) { + if (str.length <= nxt_length("{\n\n}")) { vm->retval = njs_value_void; return NXT_OK; } /* Stripping the wrapper's data. */ - str.start += sizeof("{\"\":") - 1; - str.length -= sizeof("{\"\":}") - 1; + str.start += nxt_length("{\"\":"); + str.length -= nxt_length("{\"\":}"); if (stringify->space.length != 0) { - str.start += sizeof("\n ") - 1; - str.length -= sizeof("\n \n") - 1; + str.start += nxt_length("\n "); + str.length -= nxt_length("\n \n"); } length = nxt_utf8_length(str.start, str.length); diff --git a/njs/njs_parser.c b/njs/njs_parser.c index 1c9fba53..7071cba7 100644 --- a/njs/njs_parser.c +++ b/njs/njs_parser.c @@ -2589,7 +2589,7 @@ njs_parser_trace_handler(nxt_trace_t *trace, nxt_trace_data_t *td, size_t size; njs_vm_t *vm; - size = sizeof("InternalError: ") - 1; + size = nxt_length("InternalError: "); memcpy(start, "InternalError: ", size); p = start + size; diff --git a/njs/njs_string.c b/njs/njs_string.c index b059dd7f..09be1a1e 100644 --- a/njs/njs_string.c +++ b/njs/njs_string.c @@ -3165,7 +3165,7 @@ njs_string_to_number(const njs_value_t *value, nxt_bool_t parse_float) nxt_bool_t minus; const u_char *p, *start, *end; - const size_t infinity = sizeof("Infinity") - 1; + const size_t infinity = nxt_length("Infinity"); size = value->short_string.size; diff --git a/njs/njs_vm.h b/njs/njs_vm.h index 3e3bdb97..e37c665b 100644 --- a/njs/njs_vm.h +++ b/njs/njs_vm.h @@ -365,8 +365,8 @@ typedef struct { #define njs_string(s) { \ .short_string = { \ .type = NJS_STRING, \ - .size = sizeof(s) - 1, \ - .length = sizeof(s) - 1, \ + .size = nxt_length(s), \ + .length = nxt_length(s), \ .start = s, \ } \ } @@ -378,10 +378,10 @@ typedef struct { .long_string = { \ .type = NJS_STRING, \ .truth = (NJS_STRING_LONG << 4) | NJS_STRING_LONG, \ - .size = sizeof(s) - 1, \ + .size = nxt_length(s), \ .data = & (njs_string_t) { \ .start = (u_char *) s, \ - .length = sizeof(s) - 1, \ + .length = nxt_length(s), \ } \ } \ } diff --git a/nxt/nxt_string.h b/nxt/nxt_string.h index ec953cf3..f1996262 100644 --- a/nxt/nxt_string.h +++ b/nxt/nxt_string.h @@ -21,7 +21,8 @@ typedef struct { * So a separate nxt_string_value() macro is intended to use in assignment. */ -#define nxt_string(s) { sizeof(s) - 1, (u_char *) s } +#define nxt_length(s) (sizeof(s) - 1) +#define nxt_string(s) { nxt_length(s), (u_char *) s } #define nxt_null_string { 0, NULL } #define nxt_string_value(s) (nxt_str_t) nxt_string(s) diff --git a/nxt/test/random_unit_test.c b/nxt/test/random_unit_test.c index 13836a6b..a4662bfa 100644 --- a/nxt/test/random_unit_test.c +++ b/nxt/test/random_unit_test.c @@ -24,7 +24,7 @@ random_unit_test(void) r.count = 400000; - nxt_random_add(&r, (u_char *) "arc4random", sizeof("arc4random") - 1); + nxt_random_add(&r, (u_char *) "arc4random", nxt_length("arc4random")); /* * Test arc4random() numbers. diff --git a/nxt/test/utf8_unit_test.c b/nxt/test/utf8_unit_test.c index 8797292f..efc34e9f 100644 --- a/nxt/test/utf8_unit_test.c +++ b/nxt/test/utf8_unit_test.c @@ -177,8 +177,8 @@ utf8_unit_test(nxt_uint_t start) n = nxt_utf8_casecmp((u_char *) "ABC АБВ ΑΒΓ", (u_char *) "abc абв αβγ", - sizeof("ABC АБВ ΑΒΓ") - 1, - sizeof("abc абв αβγ") - 1); + nxt_length("ABC АБВ ΑΒΓ"), + nxt_length("abc абв αβγ")); if (n != 0) { printf("nxt_utf8_casecmp() failed\n");