diff --git a/jerry-core/parser/js/parser.cpp b/jerry-core/parser/js/parser.cpp index 29d5a1a32..f4ba7d61a 100644 --- a/jerry-core/parser/js/parser.cpp +++ b/jerry-core/parser/js/parser.cpp @@ -3085,7 +3085,7 @@ parse_source_element_list (bool is_global, /**< flag, indicating that we parsing bool are_all_vars_replaced = true; for (vm_instr_counter_t var_decl_pos = 0; - var_decl_pos < fe_scope_tree->var_decls_cout; + var_decl_pos < linked_list_get_length (fe_scope_tree->var_decls); var_decl_pos++) { op_meta *om_p = (op_meta *) linked_list_element (fe_scope_tree->var_decls, var_decl_pos); @@ -3107,7 +3107,6 @@ parse_source_element_list (bool is_global, /**< flag, indicating that we parsing linked_list_free (fe_scope_tree->var_decls); fe_scope_tree->var_decls = linked_list_init (sizeof (op_meta)); - fe_scope_tree->var_decls_cout = 0; } } } diff --git a/jerry-core/parser/js/scopes-tree.cpp b/jerry-core/parser/js/scopes-tree.cpp index 64ce3dcf3..78fc95171 100644 --- a/jerry-core/parser/js/scopes-tree.cpp +++ b/jerry-core/parser/js/scopes-tree.cpp @@ -59,7 +59,7 @@ vm_instr_counter_t scopes_tree_var_decls_num (scopes_tree t) /**< scope */ { assert_tree (t); - return t->var_decls_cout; + return linked_list_get_length (t->var_decls); } /* scopes_tree_var_decls_num */ void @@ -77,7 +77,7 @@ scopes_tree_add_var_decl (scopes_tree tree, /**< scope, to which variable declar op_meta op) /**< variable declaration instruction */ { assert_tree (tree); - linked_list_set_element (tree->var_decls, tree->var_decls_cout++, &op); + linked_list_set_element (tree->var_decls, linked_list_get_length (tree->var_decls), &op); } /* scopes_tree_add_var_decl */ void @@ -114,7 +114,7 @@ scopes_tree_var_decl (scopes_tree tree, /**< scope, from which variable declarat vm_instr_counter_t oc) /**< number of variable declaration in the scope */ { assert_tree (tree); - JERRY_ASSERT (oc < tree->var_decls_cout); + JERRY_ASSERT (oc < linked_list_get_length (tree->var_decls)); return *(op_meta *) linked_list_element (tree->var_decls, oc); } /* scopes_tree_var_decl */ @@ -122,7 +122,7 @@ vm_instr_counter_t scopes_tree_count_instructions (scopes_tree t) { assert_tree (t); - vm_instr_counter_t res = (vm_instr_counter_t) (t->instrs_count + t->var_decls_cout); + vm_instr_counter_t res = (vm_instr_counter_t) (t->instrs_count + linked_list_get_length (t->var_decls)); for (uint8_t i = 0; i < t->t.children_num; i++) { res = (vm_instr_counter_t) ( @@ -588,7 +588,9 @@ scopes_tree_count_literals_in_blocks (scopes_tree tree) /**< scope */ result += count_new_literals_in_instr (om_p); } - for (vm_instr_counter_t var_decl_pos = 0; var_decl_pos < tree->var_decls_cout; var_decl_pos++) + for (vm_instr_counter_t var_decl_pos = 0; + var_decl_pos < linked_list_get_length (tree->var_decls); + var_decl_pos++) { op_meta *om_p = extract_op_meta (tree->var_decls, var_decl_pos); result += count_new_literals_in_instr (om_p); @@ -649,7 +651,9 @@ merge_subscopes (scopes_tree tree, /**< scopes tree to merge */ global_oc++; } - for (vm_instr_counter_t var_decl_pos = 0; var_decl_pos < tree->var_decls_cout; var_decl_pos++) + for (vm_instr_counter_t var_decl_pos = 0; + var_decl_pos < linked_list_get_length (tree->var_decls); + var_decl_pos++) { data_p[global_oc] = generate_instr (tree->var_decls, var_decl_pos, lit_ids_p); global_oc++; @@ -817,7 +821,6 @@ scopes_tree_init (scopes_tree parent, /**< parent scope */ tree->contains_delete = false; tree->contains_functions = false; tree->instrs = linked_list_init (sizeof (op_meta)); - tree->var_decls_cout = 0; tree->var_decls = linked_list_init (sizeof (op_meta)); return tree; } /* scopes_tree_init */ diff --git a/jerry-core/parser/js/scopes-tree.h b/jerry-core/parser/js/scopes-tree.h index 3c10bdf1b..62ce75f26 100644 --- a/jerry-core/parser/js/scopes-tree.h +++ b/jerry-core/parser/js/scopes-tree.h @@ -63,7 +63,6 @@ typedef struct linked_list instrs; /**< instructions */ vm_instr_counter_t instrs_count; /**< count of instructions */ linked_list var_decls; /**< instructions for variable declarations */ - uint8_t var_decls_cout; /**< number of instructions for variable declarations */ scope_type_t type : 2; /**< scope type */ bool strict_mode: 1; /**< flag, indicating that scope's code should be executed in strict mode */ bool ref_arguments: 1; /**< flag, indicating that "arguments" variable is used inside the scope diff --git a/jerry-core/parser/js/serializer.cpp b/jerry-core/parser/js/serializer.cpp index 23b90df4f..2288f9dac 100644 --- a/jerry-core/parser/js/serializer.cpp +++ b/jerry-core/parser/js/serializer.cpp @@ -133,7 +133,9 @@ serializer_dump_subscope (scopes_tree tree) /**< scope to dump */ } scopes_tree_add_op_meta (current_scope, *om_p); } - for (vm_instr_counter_t var_decl_pos = 0; var_decl_pos < tree->var_decls_cout; var_decl_pos++) + for (vm_instr_counter_t var_decl_pos = 0; + var_decl_pos < linked_list_get_length (tree->var_decls); + var_decl_pos++) { op_meta *om_p = (op_meta *) linked_list_element (tree->var_decls, var_decl_pos); scopes_tree_add_op_meta (current_scope, *om_p); @@ -217,7 +219,8 @@ serializer_dump_op_meta (op_meta op) void serializer_dump_var_decl (op_meta op) /**< variable declaration instruction */ { - JERRY_ASSERT (scopes_tree_instrs_num (current_scope) + current_scope->var_decls_cout < MAX_OPCODES); + JERRY_ASSERT (scopes_tree_instrs_num (current_scope) + + linked_list_get_length (current_scope->var_decls) < MAX_OPCODES); scopes_tree_add_var_decl (current_scope, op); } /* serializer_dump_var_decl */