From: Dmitry Volyntsev Date: Sat, 1 Oct 2022 00:40:57 +0000 (-0700) Subject: Parser: simplified njs_parser_string_create() using existing API. X-Git-Tag: 0.7.8~8 X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=cc556b37221354bf1ab06c1f03c3716e45ef32f1;p=njs.git Parser: simplified njs_parser_string_create() using existing API. --- diff --git a/src/njs_parser.c b/src/njs_parser.c index 8ed4e1a6..05cfaf17 100644 --- a/src/njs_parser.c +++ b/src/njs_parser.c @@ -8307,32 +8307,19 @@ njs_int_t njs_parser_string_create(njs_vm_t *vm, njs_lexer_token_t *token, njs_value_t *value) { - u_char *dst; - size_t size, length; - njs_str_t *src; - const u_char *p, *end; - njs_unicode_decode_t ctx; - - src = &token->text; - - njs_utf8_decode_init(&ctx); + size_t length; + njs_str_t dst; - length = njs_utf8_stream_length(&ctx, src->start, src->length, 1, 0, &size); - - dst = njs_string_alloc(vm, value, size, length); - if (njs_slow_path(dst == NULL)) { + length = njs_decode_utf8_length(&token->text, &dst.length); + dst.start = njs_string_alloc(vm, value, dst.length, length); + if (njs_slow_path(dst.start == NULL)) { return NJS_ERROR; } - p = src->start; - end = src->start + src->length; - - njs_utf8_decode_init(&ctx); - - (void) njs_utf8_stream_encode(&ctx, p, end, dst, 1, 0); + njs_decode_utf8(&dst, &token->text); - if (length > NJS_STRING_MAP_STRIDE && size != length) { - njs_string_offset_map_init(value->long_string.data->start, size); + if (length > NJS_STRING_MAP_STRIDE && dst.length != length) { + njs_string_offset_map_init(value->long_string.data->start, dst.length); } return NJS_OK;