From: Igor Sysoev Date: Tue, 18 Oct 2016 12:48:19 +0000 (+0300) Subject: A fix of function name usage. X-Git-Tag: 0.1.4~8 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=16b895aa695a55ebed12e262079f37591f8b8860;p=njs.git A fix of function name usage. --- diff --git a/njs/njs_generator.c b/njs/njs_generator.c index cee9c11e..e0bf18b1 100644 --- a/njs/njs_generator.c +++ b/njs/njs_generator.c @@ -333,14 +333,9 @@ njs_generator(njs_vm_t *vm, njs_parser_t *parser, njs_parser_node_t *node) static nxt_int_t njs_generate_name(njs_vm_t *vm, njs_parser_t *parser, njs_parser_node_t *node) { - njs_index_t index; - njs_value_t *value; njs_vmcode_object_copy_t *copy; - index = node->u.variable->index; - value = njs_variable_value(parser, index); - - if (value->type == NJS_FUNCTION) { + if (node->u.variable->function) { node->index = njs_generator_dest_index(vm, parser, node); if (nxt_slow_path(node->index == NJS_INDEX_ERROR)) { @@ -352,7 +347,7 @@ njs_generate_name(njs_vm_t *vm, njs_parser_t *parser, njs_parser_node_t *node) copy->code.operands = NJS_VMCODE_2OPERANDS; copy->code.retval = NJS_VMCODE_RETVAL; copy->retval = node->index; - copy->object = index; + copy->object = node->u.variable->index; return NXT_OK; } diff --git a/njs/njs_parser.c b/njs/njs_parser.c index d64a1f63..9dda40c6 100644 --- a/njs/njs_parser.c +++ b/njs/njs_parser.c @@ -315,6 +315,7 @@ njs_parser_function_declaration(njs_vm_t *vm, njs_parser_t *parser) } var->state = NJS_VARIABLE_DECLARED; + var->function = 1; node->index = var->index; token = njs_parser_token(parser); diff --git a/njs/njs_variable.h b/njs/njs_variable.h index 342b6301..7fdd3067 100644 --- a/njs/njs_variable.h +++ b/njs/njs_variable.h @@ -20,7 +20,8 @@ typedef enum { typedef struct { u_char *name_start; uint16_t name_len; - njs_variable_state_t state:8; /* 3 bits */ + njs_variable_state_t state:8; /* 3 bits */ + uint8_t function; /* 1 bit */ njs_index_t index; } njs_variable_t;