Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # HG changeset patch
- # User hongzhidao <hongzhidao@gmail.com>
- # Date 1550330119 -28800
- # Node ID 6a88279537941f743ae5bd84ce6983fc2dbb0d7d
- # Parent 8c422e42448e23eeacf85cad5f559941fd64a0ca
- Fixed nxt_file_name().
- diff -r 8c422e42448e -r 6a8827953794 nxt/nxt_file.c
- --- a/nxt/nxt_file.c Thu Feb 14 21:19:51 2019 +0300
- +++ b/nxt/nxt_file.c Sat Feb 16 23:15:19 2019 +0800
- @@ -16,18 +16,19 @@
- void
- nxt_file_name(nxt_str_t *name, char *path)
- {
- - char *p;
- + char *p, *last;
- size_t length;
- length = strlen(path);
- + last = path;
- for (p = path + length; p >= path; p--) {
- if (*p == '/') {
- - p++;
- + last = p + 1;
- break;
- }
- }
- - name->start = (u_char *) p;
- - name->length = length - (p - path);
- + name->start = (u_char *) last;
- + name->length = length - (last - path);
- }
- # HG changeset patch
- # User hongzhidao <hongzhidao@gmail.com>
- # Date 1550330323 -28800
- # Node ID 8cfc7e543f5b58cac555d14c39f4efc20817d322
- # Parent 6a88279537941f743ae5bd84ce6983fc2dbb0d7d
- Style.
- diff -r 6a8827953794 -r 8cfc7e543f5b njs/njs.c
- --- a/njs/njs.c Sat Feb 16 23:15:19 2019 +0800
- +++ b/njs/njs.c Sat Feb 16 23:18:43 2019 +0800
- @@ -10,8 +10,6 @@
- static nxt_int_t njs_vm_init(njs_vm_t *vm);
- -static nxt_int_t njs_vm_invoke(njs_vm_t *vm, njs_function_t *function,
- - const njs_value_t *args, nxt_uint_t nargs, njs_index_t retval);
- static nxt_int_t njs_vm_handle_events(njs_vm_t *vm);
- @@ -218,20 +216,20 @@ njs_vm_destroy(njs_vm_t *vm)
- nxt_int_t
- njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end)
- {
- - nxt_int_t ret;
- + nxt_int_t ret;
- njs_lexer_t *lexer;
- njs_parser_t *parser, *prev;
- - njs_generator_t *generator;
- + njs_generator_t generator;
- +
- + if (vm->parser != NULL && !vm->options.accumulative) {
- + return NJS_ERROR;
- + }
- parser = nxt_mp_zalloc(vm->mem_pool, sizeof(njs_parser_t));
- if (nxt_slow_path(parser == NULL)) {
- return NJS_ERROR;
- }
- - if (vm->parser != NULL && !vm->options.accumulative) {
- - return NJS_ERROR;
- - }
- -
- prev = vm->parser;
- vm->parser = parser;
- @@ -271,24 +269,16 @@ njs_vm_compile(njs_vm_t *vm, u_char **st
- */
- vm->code = NULL;
- - generator = nxt_mp_align(vm->mem_pool, sizeof(njs_value_t),
- - sizeof(njs_generator_t));
- + nxt_memzero(&generator, sizeof(njs_generator_t));
- - if (nxt_slow_path(generator == NULL)) {
- - goto fail;
- - }
- -
- - nxt_memzero(generator, sizeof(njs_generator_t));
- -
- - ret = njs_generate_scope(vm, generator, parser->scope);
- + ret = njs_generate_scope(vm, &generator, parser->scope);
- if (nxt_slow_path(ret != NXT_OK)) {
- goto fail;
- }
- - vm->current = generator->code_start;
- -
- - vm->global_scope = generator->local_scope;
- - vm->scope_size = generator->scope_size;
- + vm->current = generator.code_start;
- + vm->global_scope = generator.local_scope;
- + vm->scope_size = generator.scope_size;
- vm->variables_hash = parser->scope->variables;
- @@ -458,11 +448,11 @@ nxt_int_t
- njs_vm_call(njs_vm_t *vm, njs_function_t *function, const njs_value_t *args,
- nxt_uint_t nargs)
- {
- - return njs_vm_invoke(vm, function, args, nargs, NJS_INDEX_GLOBAL_RETVAL);
- + return njs_vm_invoke(vm, function, args, nargs, NJS_INDEX_GLOBAL_RETVAL);
- }
- -static nxt_int_t
- +nxt_int_t
- njs_vm_invoke(njs_vm_t *vm, njs_function_t *function, const njs_value_t *args,
- nxt_uint_t nargs, njs_index_t retval)
- {
- diff -r 6a8827953794 -r 8cfc7e543f5b njs/njs.h
- --- a/njs/njs.h Sat Feb 16 23:15:19 2019 +0800
- +++ b/njs/njs.h Sat Feb 16 23:18:43 2019 +0800
- @@ -193,6 +193,8 @@ NXT_EXPORT nxt_int_t njs_vm_posted(njs_v
- */
- NXT_EXPORT nxt_int_t njs_vm_call(njs_vm_t *vm, njs_function_t *function,
- const njs_value_t *args, nxt_uint_t nargs);
- +NXT_EXPORT nxt_int_t njs_vm_invoke(njs_vm_t *vm, njs_function_t *function,
- + const njs_value_t *args, nxt_uint_t nargs, njs_index_t retval);
- /*
- * Runs posted events.
- diff -r 6a8827953794 -r 8cfc7e543f5b njs/njs_generator.c
- --- a/njs/njs_generator.c Sat Feb 16 23:15:19 2019 +0800
- +++ b/njs/njs_generator.c Sat Feb 16 23:18:43 2019 +0800
- @@ -2282,19 +2282,13 @@ njs_generate_function_scope(njs_vm_t *vm
- size_t size;
- nxt_int_t ret;
- nxt_array_t *closure;
- - njs_generator_t *generator;
- -
- - generator = nxt_mp_align(vm->mem_pool, sizeof(njs_value_t),
- - sizeof(njs_generator_t));
- - if (nxt_slow_path(generator == NULL)) {
- - return NXT_ERROR;
- - }
- -
- - nxt_memzero(generator, sizeof(njs_generator_t));
- + njs_generator_t generator;
- node = node->right;
- - ret = njs_generate_scope(vm, generator, node->scope);
- + nxt_memzero(&generator, sizeof(njs_generator_t));
- +
- + ret = njs_generate_scope(vm, &generator, node->scope);
- if (nxt_fast_path(ret == NXT_OK)) {
- size = 0;
- @@ -2309,16 +2303,13 @@ njs_generate_function_scope(njs_vm_t *vm
- lambda->closure_size = size;
- lambda->nesting = node->scope->nesting;
- - lambda->arguments_object = generator->arguments_object;
- -
- - lambda->local_size = generator->scope_size;
- - lambda->local_scope = generator->local_scope;
- -
- - lambda->start = generator->code_start;
- + lambda->arguments_object = generator.arguments_object;
- +
- + lambda->start = generator.code_start;
- + lambda->local_size = generator.scope_size;
- + lambda->local_scope = generator.local_scope;
- }
- - nxt_mp_free(vm->mem_pool, generator);
- -
- return ret;
- }
- diff -r 6a8827953794 -r 8cfc7e543f5b njs/njs_parser.c
- --- a/njs/njs_parser.c Sat Feb 16 23:15:19 2019 +0800
- +++ b/njs/njs_parser.c Sat Feb 16 23:18:43 2019 +0800
- @@ -167,6 +167,7 @@ njs_parser_scope_begin(njs_vm_t *vm, njs
- nxt_int_t ret;
- nxt_uint_t nesting;
- nxt_array_t *values;
- + njs_lexer_t *lexer;
- njs_parser_scope_t *scope, *parent;
- nesting = 0;
- @@ -232,8 +233,10 @@ njs_parser_scope_begin(njs_vm_t *vm, njs
- scope->values[0] = values;
- scope->values[1] = NULL;
- - if (parser->lexer->file.start != NULL) {
- - ret = njs_name_copy(vm, &scope->file, &parser->lexer->file);
- + lexer = parser->lexer;
- +
- + if (lexer->file.start != NULL) {
- + ret = njs_name_copy(vm, &scope->file, &lexer->file);
- if (nxt_slow_path(ret != NXT_OK)) {
- return NXT_ERROR;
- }
- @@ -2178,11 +2181,7 @@ njs_parser_builtin(njs_vm_t *vm, njs_par
- njs_variable_t *var;
- njs_parser_scope_t *scope;
- - scope = parser->scope;
- -
- - while (scope->type != NJS_SCOPE_GLOBAL) {
- - scope = scope->parent;
- - }
- + scope = njs_parser_global_scope(vm);
- var = njs_variable_add(vm, scope, name, hash, NJS_VARIABLE_VAR);
- if (nxt_slow_path(var == NULL)) {
- diff -r 6a8827953794 -r 8cfc7e543f5b njs/njs_parser.h
- --- a/njs/njs_parser.h Sat Feb 16 23:15:19 2019 +0800
- +++ b/njs/njs_parser.h Sat Feb 16 23:18:43 2019 +0800
- @@ -360,6 +360,21 @@ njs_parser_node_new(njs_vm_t *vm, njs_pa
- }
- +nxt_inline njs_parser_scope_t *
- +njs_parser_global_scope(njs_vm_t *vm)
- +{
- + njs_parser_scope_t *scope;
- +
- + scope = vm->parser->scope;
- +
- + while (scope->type != NJS_SCOPE_GLOBAL) {
- + scope = scope->parent;
- + }
- +
- + return scope;
- +}
- +
- +
- extern const nxt_lvlhsh_proto_t njs_keyword_hash_proto;
- diff -r 6a8827953794 -r 8cfc7e543f5b njs/njs_variable.c
- --- a/njs/njs_variable.c Sat Feb 16 23:15:19 2019 +0800
- +++ b/njs/njs_variable.c Sat Feb 16 23:18:43 2019 +0800
- @@ -144,7 +144,7 @@ njs_variable_reference(njs_vm_t *vm, njs
- ret = nxt_lvlhsh_insert(&scope->references, &lhq);
- - if (nxt_slow_path(ret != NXT_ERROR)) {
- + if (nxt_fast_path(ret != NXT_ERROR)) {
- ret = NXT_OK;
- }
- }
- @@ -356,7 +356,7 @@ njs_variable_reference_resolve(njs_vm_t
- njs_parser_scope_t *node_scope)
- {
- nxt_lvlhsh_query_t lhq;
- - njs_parser_scope_t *scope, *parent, *previous;
- + njs_parser_scope_t *scope, *previous;
- lhq.key_hash = vr->hash;
- lhq.key = vr->name;
- @@ -395,9 +395,7 @@ njs_variable_reference_resolve(njs_vm_t
- return NXT_OK;
- }
- - parent = scope->parent;
- -
- - if (parent == NULL) {
- + if (scope->parent == NULL) {
- /* A global scope. */
- vr->scope = scope;
- @@ -405,7 +403,7 @@ njs_variable_reference_resolve(njs_vm_t
- }
- previous = scope;
- - scope = parent;
- + scope = scope->parent;
- }
- }
- @@ -495,7 +493,7 @@ njs_name_copy(njs_vm_t *vm, nxt_str_t *d
- dst->start = nxt_mp_alloc(vm->mem_pool, src->length);
- - if (nxt_slow_path(dst->start != NULL)) {
- + if (nxt_fast_path(dst->start != NULL)) {
- (void) memcpy(dst->start, src->start, src->length);
- return NXT_OK;
Add Comment
Please, Sign In to add comment