@@ -193,7 +193,7 @@ static bool ts_parser__breakdown_top_of_stack(
193193 did_break_down = true;
194194 pending = false;
195195 for (uint32_t i = 0 ; i < pop .size ; i ++ ) {
196- StackSlice slice = pop . contents [ i ] ;
196+ StackSlice slice = * array_get ( & pop , i ) ;
197197 TSStateId state = ts_stack_state (self -> stack , slice .version );
198198 Subtree parent = * array_front (& slice .subtrees );
199199
@@ -212,7 +212,7 @@ static bool ts_parser__breakdown_top_of_stack(
212212 }
213213
214214 for (uint32_t j = 1 ; j < slice .subtrees .size ; j ++ ) {
215- Subtree tree = slice .subtrees . contents [ j ] ;
215+ Subtree tree = * array_get ( & slice .subtrees , j ) ;
216216 ts_stack_push (self -> stack , slice .version , tree , false, state );
217217 }
218218
@@ -951,7 +951,7 @@ static StackVersion ts_parser__reduce(
951951 uint32_t removed_version_count = 0 ;
952952 uint32_t halted_version_count = ts_stack_halted_version_count (self -> stack );
953953 for (uint32_t i = 0 ; i < pop .size ; i ++ ) {
954- StackSlice slice = pop . contents [ i ] ;
954+ StackSlice slice = * array_get ( & pop , i ) ;
955955 StackVersion slice_version = slice .version - removed_version_count ;
956956
957957 // This is where new versions are added to the parse stack. The versions
@@ -964,7 +964,7 @@ static StackVersion ts_parser__reduce(
964964 removed_version_count ++ ;
965965 while (i + 1 < pop .size ) {
966966 LOG ("aborting reduce with too many versions" )
967- StackSlice next_slice = pop . contents [ i + 1 ] ;
967+ StackSlice next_slice = * array_get ( & pop , i + 1 ) ;
968968 if (next_slice .version != slice .version ) break ;
969969 ts_subtree_array_delete (& self -> tree_pool , & next_slice .subtrees );
970970 i ++ ;
@@ -987,7 +987,7 @@ static StackVersion ts_parser__reduce(
987987 // choose one of the arrays of trees to be the parent node's children, and
988988 // delete the rest of the tree arrays.
989989 while (i + 1 < pop .size ) {
990- StackSlice next_slice = pop . contents [ i + 1 ] ;
990+ StackSlice next_slice = * array_get ( & pop , i + 1 ) ;
991991 if (next_slice .version != slice .version ) break ;
992992 i ++ ;
993993
@@ -1029,7 +1029,7 @@ static StackVersion ts_parser__reduce(
10291029 // were previously on top of the stack.
10301030 ts_stack_push (self -> stack , slice_version , ts_subtree_from_mut (parent ), false, next_state );
10311031 for (uint32_t j = 0 ; j < self -> trailing_extras .size ; j ++ ) {
1032- ts_stack_push (self -> stack , slice_version , self -> trailing_extras . contents [ j ] , false, next_state );
1032+ ts_stack_push (self -> stack , slice_version , * array_get ( & self -> trailing_extras , j ) , false, next_state );
10331033 }
10341034
10351035 for (StackVersion j = 0 ; j < slice_version ; j ++ ) {
@@ -1057,11 +1057,11 @@ static void ts_parser__accept(
10571057
10581058 StackSliceArray pop = ts_stack_pop_all (self -> stack , version );
10591059 for (uint32_t i = 0 ; i < pop .size ; i ++ ) {
1060- SubtreeArray trees = pop . contents [ i ]. subtrees ;
1060+ SubtreeArray trees = array_get ( & pop , i ) -> subtrees ;
10611061
10621062 Subtree root = NULL_SUBTREE ;
10631063 for (uint32_t j = trees .size - 1 ; j + 1 > 0 ; j -- ) {
1064- Subtree tree = trees . contents [ j ] ;
1064+ Subtree tree = * array_get ( & trees , j ) ;
10651065 if (!ts_subtree_extra (tree )) {
10661066 ts_assert (!tree .data .is_inline );
10671067 uint32_t child_count = ts_subtree_child_count (tree );
@@ -1096,7 +1096,7 @@ static void ts_parser__accept(
10961096 }
10971097 }
10981098
1099- ts_stack_remove_version (self -> stack , pop . contents [ 0 ]. version );
1099+ ts_stack_remove_version (self -> stack , array_get ( & pop , 0 ) -> version );
11001100 ts_stack_halt (self -> stack , version );
11011101}
11021102
@@ -1162,7 +1162,7 @@ static bool ts_parser__do_all_potential_reductions(
11621162
11631163 StackVersion reduction_version = STACK_VERSION_NONE ;
11641164 for (uint32_t j = 0 ; j < self -> reduce_actions .size ; j ++ ) {
1165- ReduceAction action = self -> reduce_actions . contents [ j ] ;
1165+ ReduceAction action = * array_get ( & self -> reduce_actions , j ) ;
11661166
11671167 reduction_version = ts_parser__reduce (
11681168 self , version , action .symbol , action .count ,
@@ -1200,7 +1200,7 @@ static bool ts_parser__recover_to_state(
12001200 StackVersion previous_version = STACK_VERSION_NONE ;
12011201
12021202 for (unsigned i = 0 ; i < pop .size ; i ++ ) {
1203- StackSlice slice = pop . contents [ i ] ;
1203+ StackSlice slice = * array_get ( & pop , i ) ;
12041204
12051205 if (slice .version == previous_version ) {
12061206 ts_subtree_array_delete (& self -> tree_pool , & slice .subtrees );
@@ -1218,12 +1218,12 @@ static bool ts_parser__recover_to_state(
12181218 SubtreeArray error_trees = ts_stack_pop_error (self -> stack , slice .version );
12191219 if (error_trees .size > 0 ) {
12201220 ts_assert (error_trees .size == 1 );
1221- Subtree error_tree = error_trees . contents [ 0 ] ;
1221+ Subtree error_tree = * array_get ( & error_trees , 0 ) ;
12221222 uint32_t error_child_count = ts_subtree_child_count (error_tree );
12231223 if (error_child_count > 0 ) {
12241224 array_splice (& slice .subtrees , 0 , 0 , error_child_count , ts_subtree_children (error_tree ));
12251225 for (unsigned j = 0 ; j < error_child_count ; j ++ ) {
1226- ts_subtree_retain (slice .subtrees . contents [ j ] );
1226+ ts_subtree_retain (* array_get ( & slice .subtrees , j ) );
12271227 }
12281228 }
12291229 ts_subtree_array_delete (& self -> tree_pool , & error_trees );
@@ -1239,7 +1239,7 @@ static bool ts_parser__recover_to_state(
12391239 }
12401240
12411241 for (unsigned j = 0 ; j < self -> trailing_extras .size ; j ++ ) {
1242- Subtree tree = self -> trailing_extras . contents [ j ] ;
1242+ Subtree tree = * array_get ( & self -> trailing_extras , j ) ;
12431243 ts_stack_push (self -> stack , slice .version , tree , false, goal_state );
12441244 }
12451245
@@ -1275,7 +1275,7 @@ static void ts_parser__recover(
12751275 // if the current lookahead token would be valid in that state.
12761276 if (summary && !ts_subtree_is_error (lookahead )) {
12771277 for (unsigned i = 0 ; i < summary -> size ; i ++ ) {
1278- StackSummaryEntry entry = summary -> contents [ i ] ;
1278+ StackSummaryEntry entry = * array_get ( summary , i ) ;
12791279
12801280 if (entry .state == ERROR_STATE ) continue ;
12811281 if (entry .position .bytes == position .bytes ) continue ;
@@ -1402,18 +1402,18 @@ static void ts_parser__recover(
14021402 // arbitrarily and discard the rest.
14031403 if (pop .size > 1 ) {
14041404 for (unsigned i = 1 ; i < pop .size ; i ++ ) {
1405- ts_subtree_array_delete (& self -> tree_pool , & pop . contents [ i ]. subtrees );
1405+ ts_subtree_array_delete (& self -> tree_pool , & array_get ( & pop , i ) -> subtrees );
14061406 }
1407- while (ts_stack_version_count (self -> stack ) > pop . contents [ 0 ]. version + 1 ) {
1408- ts_stack_remove_version (self -> stack , pop . contents [ 0 ]. version + 1 );
1407+ while (ts_stack_version_count (self -> stack ) > array_get ( & pop , 0 ) -> version + 1 ) {
1408+ ts_stack_remove_version (self -> stack , array_get ( & pop , 0 ) -> version + 1 );
14091409 }
14101410 }
14111411
1412- ts_stack_renumber_version (self -> stack , pop . contents [ 0 ]. version , version );
1413- array_push (& pop . contents [ 0 ]. subtrees , ts_subtree_from_mut (error_repeat ));
1412+ ts_stack_renumber_version (self -> stack , array_get ( & pop , 0 ) -> version , version );
1413+ array_push (& array_get ( & pop , 0 ) -> subtrees , ts_subtree_from_mut (error_repeat ));
14141414 error_repeat = ts_subtree_new_node (
14151415 ts_builtin_sym_error_repeat ,
1416- & pop . contents [ 0 ]. subtrees ,
1416+ & array_get ( & pop , 0 ) -> subtrees ,
14171417 0 ,
14181418 self -> language
14191419 );
@@ -1889,9 +1889,9 @@ static bool ts_parser__balance_subtree(TSParser *self) {
18891889 return false;
18901890 }
18911891
1892- MutableSubtree tree = self -> tree_pool .tree_stack . contents [
1892+ MutableSubtree tree = * array_get ( & self -> tree_pool .tree_stack ,
18931893 self -> tree_pool .tree_stack .size - 1
1894- ] ;
1894+ ) ;
18951895
18961896 if (tree .ptr -> repeat_depth > 0 ) {
18971897 Subtree child1 = ts_subtree_children (tree )[0 ];
@@ -2140,7 +2140,7 @@ TSTree *ts_parser_parse(
21402140 LOG ("parse_after_edit" );
21412141 LOG_TREE (self -> old_tree );
21422142 for (unsigned i = 0 ; i < self -> included_range_differences .size ; i ++ ) {
2143- TSRange * range = & self -> included_range_differences . contents [ i ] ;
2143+ TSRange * range = array_get ( & self -> included_range_differences , i ) ;
21442144 LOG ("different_included_range %u - %u" , range -> start_byte , range -> end_byte );
21452145 }
21462146 } else {
@@ -2197,7 +2197,7 @@ TSTree *ts_parser_parse(
21972197 }
21982198
21992199 while (self -> included_range_difference_index < self -> included_range_differences .size ) {
2200- TSRange * range = & self -> included_range_differences . contents [ self -> included_range_difference_index ] ;
2200+ TSRange * range = array_get ( & self -> included_range_differences , self -> included_range_difference_index ) ;
22012201 if (range -> end_byte <= position ) {
22022202 self -> included_range_difference_index ++ ;
22032203 } else {
0 commit comments