]> git.kaiwu.me - njs.git/commitdiff
Eliminating vm->main_index introduced in ea2ec4c3ed7d.
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 24 Feb 2021 14:50:14 +0000 (14:50 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 24 Feb 2021 14:50:14 +0000 (14:50 +0000)
The vm->main_index was only needed for the disassembler in the
accumulative mode.  It was used to prevent from disassembling the code
from the previous iterations in the CLI.

The same result can be achieved without introducing the VM level field.

src/njs_disassembler.c
src/njs_vm.c
src/njs_vm.h

index af99cafb69c2286d9c7a792efad70f400ec4be50..dd67fa610e1b184f5c1168a719cbeaa9d4177480 100644 (file)
@@ -146,8 +146,16 @@ njs_disassembler(njs_vm_t *vm)
     njs_vm_code_t  *code;
 
     code = vm->codes->start;
-    code += vm->main_index;
-    n = vm->codes->items - vm->main_index;
+    n = vm->codes->items;
+
+    while (n != 0) {
+        if (code->start == vm->start) {
+            break;
+        }
+
+        code++;
+        n--;
+    }
 
     while (n != 0) {
         njs_printf("%V:%V\n", &code->file, &code->name);
index a4e708ec3e86077be94a5a286b23a34139b87659..366a5e55f9ec91019480f7e27a41d3da1a549b39 100644 (file)
@@ -156,7 +156,6 @@ njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end)
         return NJS_ERROR;
     }
 
-    vm->main_index = code - (njs_vm_code_t *) vm->codes->start;
     vm->start = generator.code_start;
     vm->global_scope = generator.local_scope;
     vm->scope_size = generator.scope_size;
index c23290856af75a90699ca079bc9d75572313bf56..47f0f8793a90efbe128c9112440734a8ea28f33f 100644 (file)
@@ -233,9 +233,7 @@ struct njs_vm_s {
     njs_object_t             string_object;
     njs_object_t             global_object;
 
-    njs_uint_t               main_index;
     njs_arr_t                *codes;  /* of njs_vm_code_t */
-
     njs_arr_t                *functions_name_cache;
 
     njs_trace_t              trace;