details: https://hg.nginx.org/njs/rev/dbffb3031c77 branches: changeset: 746:dbffb3031c77 user: Dmitry Volyntsev <xei...@nginx.com> date: Wed Jan 30 18:49:33 2019 +0300 description: Replacing vsprintf with nxt_vsprintf in exceptions.
diffstat: njs/njs_crypto.c | 6 +--- njs/njs_error.c | 6 +++- njs/njs_fs.c | 24 +++++++-------------- njs/njs_generator.c | 7 ++--- njs/njs_json.c | 2 +- njs/njs_module.c | 3 +- njs/njs_object.c | 7 ++--- njs/njs_parser.c | 57 +++++++++++++++++++++------------------------------- njs/njs_regexp.c | 9 +++---- njs/njs_string.c | 5 +-- njs/njs_variable.c | 3 +- njs/njs_vm.c | 18 ++++++---------- 12 files changed, 59 insertions(+), 88 deletions(-) diffs (465 lines): diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_crypto.c --- a/njs/njs_crypto.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_crypto.c Wed Jan 30 18:49:33 2019 +0300 @@ -691,8 +691,7 @@ njs_crypto_alg(njs_vm_t *vm, const nxt_s } } - njs_type_error(vm, "not supported algorithm: '%.*s'", - (int) name->length, name->start); + njs_type_error(vm, "not supported algorithm: '%V'", name); return NULL; } @@ -709,8 +708,7 @@ njs_crypto_encoding(njs_vm_t *vm, const } } - njs_type_error(vm, "Unknown digest encoding: '%.*s'", - (int) name->length, name->start); + njs_type_error(vm, "Unknown digest encoding: '%V'", name); return NULL; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_error.c --- a/njs/njs_error.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_error.c Wed Jan 30 18:49:33 2019 +0300 @@ -23,13 +23,15 @@ njs_exception_error_create(njs_vm_t *vm, nxt_int_t ret; njs_value_t string; njs_object_t *error; - char buf[256]; + u_char buf[256], *p; if (fmt != NULL) { va_start(args, fmt); - size = vsnprintf(buf, sizeof(buf), fmt, args); + p = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args); va_end(args); + size = p - buf; + } else { size = 0; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_fs.c --- a/njs/njs_fs.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_fs.c Wed Jan 30 18:49:33 2019 +0300 @@ -165,8 +165,7 @@ njs_fs_read_file(njs_vm_t *vm, njs_value flags = njs_fs_flags(&flag); if (nxt_slow_path(flags == -1)) { - njs_type_error(vm, "Unknown file open flags: '%.*s'", - (int) flag.length, flag.start); + njs_type_error(vm, "Unknown file open flags: '%V'", &flag); return NJS_ERROR; } @@ -178,8 +177,7 @@ njs_fs_read_file(njs_vm_t *vm, njs_value if (encoding.length != 0 && (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0)) { - njs_type_error(vm, "Unknown encoding: '%.*s'", - (int) encoding.length, encoding.start); + njs_type_error(vm, "Unknown encoding: '%V'", &encoding); return NJS_ERROR; } @@ -362,8 +360,7 @@ njs_fs_read_file_sync(njs_vm_t *vm, njs_ flags = njs_fs_flags(&flag); if (nxt_slow_path(flags == -1)) { - njs_type_error(vm, "Unknown file open flags: '%.*s'", - (int) flag.length, flag.start); + njs_type_error(vm, "Unknown file open flags: '%V'", &flag); return NJS_ERROR; } @@ -375,8 +372,7 @@ njs_fs_read_file_sync(njs_vm_t *vm, njs_ if (encoding.length != 0 && (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0)) { - njs_type_error(vm, "Unknown encoding: '%.*s'", - (int) encoding.length, encoding.start); + njs_type_error(vm, "Unknown encoding: '%V'", &encoding); return NJS_ERROR; } @@ -611,8 +607,7 @@ static njs_ret_t njs_fs_write_file_inter if (flag.start != NULL) { flags = njs_fs_flags(&flag); if (nxt_slow_path(flags == -1)) { - njs_type_error(vm, "Unknown file open flags: '%.*s'", - (int) flag.length, flag.start); + njs_type_error(vm, "Unknown file open flags: '%V'", &flag); return NJS_ERROR; } @@ -635,8 +630,7 @@ static njs_ret_t njs_fs_write_file_inter if (encoding.length != 0 && (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0)) { - njs_type_error(vm, "Unknown encoding: '%.*s'", - (int) encoding.length, encoding.start); + njs_type_error(vm, "Unknown encoding: '%V'", &encoding); return NJS_ERROR; } @@ -785,8 +779,7 @@ njs_fs_write_file_sync_internal(njs_vm_t if (flag.start != NULL) { flags = njs_fs_flags(&flag); if (nxt_slow_path(flags == -1)) { - njs_type_error(vm, "Unknown file open flags: '%.*s'", - (int) flag.length, flag.start); + njs_type_error(vm, "Unknown file open flags: '%V'", &flag); return NJS_ERROR; } @@ -809,8 +802,7 @@ njs_fs_write_file_sync_internal(njs_vm_t if (encoding.length != 0 && (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0)) { - njs_type_error(vm, "Unknown encoding: '%.*s'", - (int) encoding.length, encoding.start); + njs_type_error(vm, "Unknown encoding: '%V'", &encoding); return NJS_ERROR; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_generator.c --- a/njs/njs_generator.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_generator.c Wed Jan 30 18:49:33 2019 +0300 @@ -3166,12 +3166,11 @@ njs_generate_syntax_error(njs_vm_t *vm, const char* fmt, ...) { va_list args; - - static char buf[256]; + u_char buf[256], *end; va_start(args, fmt); - (void) vsnprintf(buf, sizeof(buf), fmt, args); + end = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args); va_end(args); - njs_syntax_error(vm, "%s in %u", buf, token_line); + njs_syntax_error(vm, "%*s in %uD", end - buf, buf, token_line); } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_json.c --- a/njs/njs_json.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_json.c Wed Jan 30 18:49:33 2019 +0300 @@ -1131,7 +1131,7 @@ njs_json_parse_exception(njs_json_parse_ length = 0; } - njs_syntax_error(ctx->vm, "%s at position %zu", msg, length); + njs_syntax_error(ctx->vm, "%s at position %z", msg, length); } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_module.c --- a/njs/njs_module.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_module.c Wed Jan 30 18:49:33 2019 +0300 @@ -62,8 +62,7 @@ njs_ret_t njs_module_require(njs_vm_t *v return NXT_OK; } - njs_error(vm, "Cannot find module '%.*s'", - (int) lhq.key.length, lhq.key.start); + njs_error(vm, "Cannot find module '%V'", &lhq.key); return NJS_ERROR; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_object.c --- a/njs/njs_object.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_object.c Wed Jan 30 18:49:33 2019 +0300 @@ -364,8 +364,8 @@ njs_property_query(njs_vm_t *vm, njs_pro if (nxt_fast_path(ret == NXT_OK)) { njs_string_get(&pq->value, &pq->lhq.key); - njs_type_error(vm, "cannot get property '%.*s' of undefined", - (int) pq->lhq.key.length, pq->lhq.key.start); + njs_type_error(vm, "cannot get property '%V' of undefined", + &pq->lhq.key); return NXT_ERROR; } @@ -1535,8 +1535,7 @@ njs_define_property(njs_vm_t *vm, njs_va exception: - njs_type_error(vm, "Cannot redefine property: '%.*s'", - (int) pq.lhq.key.length, pq.lhq.key.start); + njs_type_error(vm, "Cannot redefine property: '%V'", &pq.lhq.key); return NXT_ERROR; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_parser.c --- a/njs/njs_parser.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_parser.c Wed Jan 30 18:49:33 2019 +0300 @@ -510,10 +510,9 @@ njs_parser_function_declaration(njs_vm_t if (token != NJS_TOKEN_NAME) { if (token == NJS_TOKEN_ARGUMENTS || token == NJS_TOKEN_EVAL) { - njs_parser_syntax_error(vm, parser, "Identifier \"%.*s\" " + njs_parser_syntax_error(vm, parser, "Identifier \"%V\" " "is forbidden in function declaration", - (int) parser->lexer->text.length, - parser->lexer->text.start); + &parser->lexer->text); } return NJS_TOKEN_ILLEGAL; @@ -854,10 +853,9 @@ njs_parser_var_statement(njs_vm_t *vm, n if (token != NJS_TOKEN_NAME) { if (token == NJS_TOKEN_ARGUMENTS || token == NJS_TOKEN_EVAL) { - njs_parser_syntax_error(vm, parser, "Identifier \"%.*s\" " + njs_parser_syntax_error(vm, parser, "Identifier \"%V\" " "is forbidden in var declaration", - (int) parser->lexer->text.length, - parser->lexer->text.start); + &parser->lexer->text); } return NJS_TOKEN_ILLEGAL; @@ -1317,10 +1315,9 @@ njs_parser_for_var_statement(njs_vm_t *v if (token != NJS_TOKEN_NAME) { if (token == NJS_TOKEN_ARGUMENTS || token == NJS_TOKEN_EVAL) { - njs_parser_syntax_error(vm, parser, "Identifier \"%.*s\" " + njs_parser_syntax_error(vm, parser, "Identifier \"%V\" " "is forbidden in for-in var declaration", - (int) parser->lexer->text.length, - parser->lexer->text.start); + &parser->lexer->text); } return NJS_TOKEN_ILLEGAL; @@ -1457,9 +1454,8 @@ njs_parser_for_in_statement(njs_vm_t *vm node = parser->node->left; if (node->token != NJS_TOKEN_NAME) { - njs_parser_ref_error(vm, parser, "Invalid left-hand side \"%.*s\" " - "in for-in statement", (int) name->length, - name->start); + njs_parser_ref_error(vm, parser, "Invalid left-hand side \"%V\" " + "in for-in statement", name); return NJS_TOKEN_ILLEGAL; } @@ -1936,9 +1932,8 @@ njs_parser_terminal(njs_vm_t *vm, njs_pa break; case NJS_TOKEN_UNTERMINATED_STRING: - njs_parser_syntax_error(vm, parser, "Unterminated string \"%.*s\"", - (int) parser->lexer->text.length, - parser->lexer->text.start); + njs_parser_syntax_error(vm, parser, "Unterminated string \"%V\"", + &parser->lexer->text); return NJS_TOKEN_ILLEGAL; @@ -2007,10 +2002,8 @@ njs_parser_terminal(njs_vm_t *vm, njs_pa nxt_thread_log_debug("JS: arguments"); if (parser->scope->type <= NJS_SCOPE_GLOBAL) { - njs_parser_syntax_error(vm, parser, "\"%.*s\" object " - "in global scope", - (int) parser->lexer->text.length, - parser->lexer->text.start); + njs_parser_syntax_error(vm, parser, "\"%V\" object " + "in global scope", &parser->lexer->text); return NJS_TOKEN_ILLEGAL; } @@ -2591,9 +2584,8 @@ njs_parser_escape_string_create(njs_vm_t invalid: - njs_parser_syntax_error(vm, parser, "Invalid Unicode code point \"%.*s\"", - (int) parser->lexer->text.length, - parser->lexer->text.start); + njs_parser_syntax_error(vm, parser, "Invalid Unicode code point \"%V\"", + &parser->lexer->text); return NJS_TOKEN_ILLEGAL; } @@ -2635,9 +2627,8 @@ njs_parser_unexpected_token(njs_vm_t *vm njs_token_t token) { if (token != NJS_TOKEN_END) { - njs_parser_syntax_error(vm, parser, "Unexpected token \"%.*s\"", - (int) parser->lexer->text.length, - parser->lexer->text.start); + njs_parser_syntax_error(vm, parser, "Unexpected token \"%V\"", + &parser->lexer->text); } else { njs_parser_syntax_error(vm, parser, "Unexpected end of input"); @@ -2665,7 +2656,7 @@ njs_parser_trace_handler(nxt_trace_t *tr p = trace->handler(trace, td, p); if (vm->parser != NULL) { - njs_internal_error(vm, "%s in %u", start, vm->parser->lexer->line); + njs_internal_error(vm, "%s in %uD", start, vm->parser->lexer->line); } else { njs_internal_error(vm, "%s", start); } @@ -2679,14 +2670,13 @@ njs_parser_syntax_error(njs_vm_t *vm, nj ...) { va_list args; - - static char buf[256]; + u_char buf[256], *end; va_start(args, fmt); - (void) vsnprintf(buf, sizeof(buf), fmt, args); + end = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args); va_end(args); - njs_syntax_error(vm, "%s in %u", buf, parser->lexer->line); + njs_syntax_error(vm, "%*s in %uD", end - buf, buf, parser->lexer->line); } @@ -2695,12 +2685,11 @@ njs_parser_ref_error(njs_vm_t *vm, njs_p ...) { va_list args; - - static char buf[256]; + u_char buf[256], *end; va_start(args, fmt); - (void) vsnprintf(buf, sizeof(buf), fmt, args); + end = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args); va_end(args); - njs_reference_error(vm, "%s in %u", buf, parser->lexer->line); + njs_reference_error(vm, "%*s in %uD", end - buf, buf, parser->lexer->line); } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_regexp.c --- a/njs/njs_regexp.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_regexp.c Wed Jan 30 18:49:33 2019 +0300 @@ -88,8 +88,7 @@ njs_regexp_constructor(njs_vm_t *vm, njs flags = njs_regexp_flags(&start, start + string.length, 1); if (nxt_slow_path(flags < 0)) { - njs_syntax_error(vm, "Invalid RegExp flags \"%.*s\"", - (int) string.length, string.start); + njs_syntax_error(vm, "Invalid RegExp flags \"%V\"", &string); return NXT_ERROR; } @@ -163,7 +162,7 @@ njs_regexp_literal(njs_vm_t *vm, njs_par if (nxt_slow_path(flags < 0)) { njs_parser_syntax_error(vm, parser, - "Invalid RegExp flags \"%.*s\"", + "Invalid RegExp flags \"%*s\"", p - lexer->start, lexer->start); return NJS_TOKEN_ILLEGAL; @@ -183,7 +182,7 @@ njs_regexp_literal(njs_vm_t *vm, njs_par } } - njs_parser_syntax_error(vm, parser, "Unterminated RegExp \"%.*s\"", + njs_parser_syntax_error(vm, parser, "Unterminated RegExp \"%*s\"", p - (lexer->start - 1), lexer->start - 1); return NJS_TOKEN_ILLEGAL; @@ -379,7 +378,7 @@ njs_regexp_compile_trace_handler(nxt_tra p = trace->handler(trace, td, start); if (vm->parser != NULL) { - njs_syntax_error(vm, "%s in %u", start, vm->parser->lexer->line); + njs_syntax_error(vm, "%s in %uD", start, vm->parser->lexer->line); } else { njs_syntax_error(vm, "%s", start); diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_string.c --- a/njs/njs_string.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_string.c Wed Jan 30 18:49:33 2019 +0300 @@ -808,7 +808,7 @@ njs_string_prototype_to_string(njs_vm_t return njs_string_base64url(vm, &vm->retval, &str); } - njs_type_error(vm, "Unknown encoding: '%.*s'", (int) enc.length, enc.start); + njs_type_error(vm, "Unknown encoding: '%V'", &enc); return NJS_ERROR; } @@ -1486,8 +1486,7 @@ njs_string_bytes_from_string(njs_vm_t *v return njs_string_decode_base64url(vm, &vm->retval, &str); } - njs_type_error(vm, "Unknown encoding: '%.*s'", (int) enc.length, - enc.start); + njs_type_error(vm, "Unknown encoding: '%V'", &enc); return NJS_ERROR; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_variable.c --- a/njs/njs_variable.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_variable.c Wed Jan 30 18:49:33 2019 +0300 @@ -345,8 +345,7 @@ njs_variable_resolve(njs_vm_t *vm, njs_p not_found: - njs_parser_ref_error(vm, vm->parser, "\"%.*s\" is not defined", - (int) vr->name.length, vr->name.start); + njs_parser_ref_error(vm, vm->parser, "\"%V\" is not defined", &vr->name); return NULL; } diff -r d99f8ee4255c -r dbffb3031c77 njs/njs_vm.c --- a/njs/njs_vm.c Wed Jan 30 18:49:16 2019 +0300 +++ b/njs/njs_vm.c Wed Jan 30 18:49:33 2019 +0300 @@ -566,9 +566,8 @@ njs_vmcode_property_set(njs_vm_t *vm, nj case NXT_DECLINED: if (nxt_slow_path(!object->data.u.object->extensible)) { - njs_type_error(vm, "Cannot add property '%.*s', " - "object is not extensible", pq.lhq.key.length, - pq.lhq.key.start); + njs_type_error(vm, "Cannot add property '%V', " + "object is not extensible", &pq.lhq.key); return NXT_ERROR; } @@ -610,9 +609,8 @@ njs_vmcode_property_set(njs_vm_t *vm, nj } if (nxt_slow_path(!prop->writable)) { - njs_type_error(vm, "Cannot assign to read-only property '%.*s' of %s", - pq.lhq.key.length, pq.lhq.key.start, - njs_type_string(object->type)); + njs_type_error(vm, "Cannot assign to read-only property '%V' of %s", + &pq.lhq.key, njs_type_string(object->type)); return NXT_ERROR; } @@ -722,9 +720,8 @@ njs_vmcode_property_delete(njs_vm_t *vm, } if (nxt_slow_path(!prop->configurable)) { - njs_type_error(vm, "Cannot delete property '%.*s' of %s", - pq.lhq.key.length, pq.lhq.key.start, - njs_type_string(object->type)); + njs_type_error(vm, "Cannot delete property '%V' of %s", + &pq.lhq.key, njs_type_string(object->type)); return NXT_ERROR; } @@ -1994,8 +1991,7 @@ njs_vmcode_method_frame(njs_vm_t *vm, nj if (value == NULL || !njs_is_function(value)) { njs_string_get(name, &string); - njs_type_error(vm, "'%.*s' is not a function", (int) string.length, - string.start); + njs_type_error(vm, "'%V' is not a function", &string); return NXT_ERROR; } _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel