]> git.kaiwu.me - njs.git/commitdiff
Using correct code size addition.
authorIgor Sysoev <igor@sysoev.ru>
Wed, 4 Apr 2018 13:21:09 +0000 (16:21 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 4 Apr 2018 13:21:09 +0000 (16:21 +0300)
Found by Clang Static Analyzer.

njs/njs_parser_expression.c

index 28b53ce18ef29354152dc2692b9253aa9240e038..fbe6cb331e584aa24b2c3077991cd86e1dd82001 100644 (file)
@@ -862,6 +862,11 @@ njs_parser_inc_dec_expression(njs_vm_t *vm, njs_parser_t *parser,
         return NJS_TOKEN_ILLEGAL;
     }
 
+    parser->code_size += (parser->node->token == NJS_TOKEN_NAME)
+                             ? sizeof(njs_vmcode_3addr_t)
+                             : sizeof(njs_vmcode_3addr_t)
+                               + sizeof(njs_vmcode_prop_set_t);
+
     node = njs_parser_node_alloc(vm);
     if (nxt_slow_path(node == NULL)) {
         return NJS_TOKEN_ERROR;
@@ -873,12 +878,6 @@ njs_parser_inc_dec_expression(njs_vm_t *vm, njs_parser_t *parser,
     node->left = parser->node;
     parser->node = node;
 
-    parser->code_size += (token == NJS_TOKEN_NAME)
-                             ? sizeof(njs_vmcode_3addr_t)
-                             : sizeof(njs_vmcode_prop_get_t)
-                               + sizeof(njs_vmcode_3addr_t)
-                               + sizeof(njs_vmcode_prop_set_t);
-
     return next;
 }
 
@@ -918,6 +917,11 @@ njs_parser_post_inc_dec_expression(njs_vm_t *vm, njs_parser_t *parser,
         return NJS_TOKEN_ILLEGAL;
     }
 
+    parser->code_size += (parser->node->token == NJS_TOKEN_NAME)
+                             ? sizeof(njs_vmcode_3addr_t)
+                             : sizeof(njs_vmcode_3addr_t)
+                               + sizeof(njs_vmcode_prop_set_t);
+
     node = njs_parser_node_alloc(vm);
     if (nxt_slow_path(node == NULL)) {
         return NJS_TOKEN_ERROR;
@@ -929,12 +933,6 @@ njs_parser_post_inc_dec_expression(njs_vm_t *vm, njs_parser_t *parser,
     node->left = parser->node;
     parser->node = node;
 
-    parser->code_size += (token == NJS_TOKEN_NAME)
-                             ? sizeof(njs_vmcode_3addr_t)
-                             : sizeof(njs_vmcode_prop_get_t)
-                               + sizeof(njs_vmcode_3addr_t)
-                               + sizeof(njs_vmcode_prop_set_t);
-
     return njs_parser_token(parser);
 }