Lines Matching refs:repeated
105 struct segment repeated; /* Endlessly repeated segment. */ member
177 ASSERT (list->repeated.count <= list->repeated.allocated); in verify_list()
179 for (i = 0; i < list->repeated.count; i++) in verify_list()
181 verify_element (&list->repeated.element[i]); in verify_list()
182 total_repcount += list->repeated.element[i].repcount; in verify_list()
184 ASSERT (total_repcount == list->repeated.length); in verify_list()
212 for (i = 0; i < list->repeated.count; i++) in free_list()
213 free_element (&list->repeated.element[i]); in free_list()
214 if (list->repeated.element != NULL) in free_list()
215 free (list->repeated.element); in free_list()
264 newlist->repeated.count = newlist->repeated.allocated = list->repeated.count; in copy_list()
266 if (list->repeated.count == 0) in copy_list()
267 newlist->repeated.element = NULL; in copy_list()
270 newlist->repeated.element = in copy_list()
271 XNMALLOC (newlist->repeated.allocated, struct format_arg); in copy_list()
272 for (i = 0; i < list->repeated.count; i++) in copy_list()
274 copy_element (&newlist->repeated.element[i], in copy_list()
275 &list->repeated.element[i]); in copy_list()
276 length += list->repeated.element[i].repcount; in copy_list()
279 ASSERT (length == list->repeated.length); in copy_list()
280 newlist->repeated.length = length; in copy_list()
323 n = list1->repeated.count; in equal_list()
324 if (n != list2->repeated.count) in equal_list()
328 const struct format_arg * e1 = &list1->repeated.element[i]; in equal_list()
329 const struct format_arg * e2 = &list2->repeated.element[i]; in equal_list()
375 if (newcount > list->repeated.allocated) in ensure_repeated_alloc()
377 list->repeated.allocated = in ensure_repeated_alloc()
378 MAX (2 * list->repeated.allocated + 1, newcount); in ensure_repeated_alloc()
379 list->repeated.element = in ensure_repeated_alloc()
381 xrealloc (list->repeated.element, in ensure_repeated_alloc()
382 list->repeated.allocated * sizeof (struct format_arg)); in ensure_repeated_alloc()
390 if (list->repeated.count >= list->repeated.allocated) in grow_repeated_alloc()
392 list->repeated.allocated = in grow_repeated_alloc()
393 MAX (2 * list->repeated.allocated + 1, list->repeated.count + 1); in grow_repeated_alloc()
394 list->repeated.element = in grow_repeated_alloc()
396 xrealloc (list->repeated.element, in grow_repeated_alloc()
397 list->repeated.allocated * sizeof (struct format_arg)); in grow_repeated_alloc()
433 n = list->repeated.count; in normalize_outermost_list()
436 && equal_element (&list->repeated.element[i], in normalize_outermost_list()
437 &list->repeated.element[j-1])) in normalize_outermost_list()
439 list->repeated.element[j-1].repcount += in normalize_outermost_list()
440 list->repeated.element[i].repcount; in normalize_outermost_list()
441 free_element (&list->repeated.element[i]); in normalize_outermost_list()
446 list->repeated.element[j] = list->repeated.element[i]; in normalize_outermost_list()
449 list->repeated.count = j; in normalize_outermost_list()
452 if (list->repeated.count > 0) in normalize_outermost_list()
457 n = list->repeated.count; in normalize_outermost_list()
460 && equal_element (&list->repeated.element[0], in normalize_outermost_list()
461 &list->repeated.element[n-1])) in normalize_outermost_list()
463 repcount0_extra = list->repeated.element[n-1].repcount; in normalize_outermost_list()
475 if (!((list->repeated.element[i].repcount in normalize_outermost_list()
477 == list->repeated.element[i+m].repcount) in normalize_outermost_list()
478 && equal_element (&list->repeated.element[i], in normalize_outermost_list()
479 &list->repeated.element[i+m]))) in normalize_outermost_list()
487 free_element (&list->repeated.element[i]); in normalize_outermost_list()
488 if (n < list->repeated.count) in normalize_outermost_list()
489 list->repeated.element[m] = list->repeated.element[n]; in normalize_outermost_list()
490 list->repeated.count = list->repeated.count - n + m; in normalize_outermost_list()
491 list->repeated.length /= n / m; in normalize_outermost_list()
498 if (list->repeated.count == 1) in normalize_outermost_list()
502 &list->repeated.element[0])) in normalize_outermost_list()
516 &list->repeated.element[list->repeated.count-1])) in normalize_outermost_list()
520 list->repeated.element[list->repeated.count-1].repcount); in normalize_outermost_list()
523 if (equal_element (&list->repeated.element[0], in normalize_outermost_list()
524 &list->repeated.element[list->repeated.count-1])) in normalize_outermost_list()
525 list->repeated.element[0].repcount += moved_repcount; in normalize_outermost_list()
528 unsigned int newcount = list->repeated.count + 1; in normalize_outermost_list()
531 list->repeated.element[i] = list->repeated.element[i-1]; in normalize_outermost_list()
532 list->repeated.count = newcount; in normalize_outermost_list()
533 copy_element (&list->repeated.element[0], in normalize_outermost_list()
534 &list->repeated.element[list->repeated.count-1]); in normalize_outermost_list()
535 list->repeated.element[0].repcount = moved_repcount; in normalize_outermost_list()
539 list->repeated.element[list->repeated.count-1].repcount -= in normalize_outermost_list()
541 if (list->repeated.element[list->repeated.count-1].repcount == 0) in normalize_outermost_list()
543 free_element (&list->repeated.element[list->repeated.count-1]); in normalize_outermost_list()
544 list->repeated.count--; in normalize_outermost_list()
575 n = list->repeated.count; in normalize_list()
577 if (list->repeated.element[i].type == FAT_LIST) in normalize_list()
578 normalize_list (list->repeated.element[i].list); in normalize_list()
605 list->repeated.count = 1; in make_unconstrained_list()
606 list->repeated.allocated = 1; in make_unconstrained_list()
607 list->repeated.element = XNMALLOC (1, struct format_arg); in make_unconstrained_list()
608 list->repeated.element[0].repcount = 1; in make_unconstrained_list()
609 list->repeated.element[0].presence = FCT_OPTIONAL; in make_unconstrained_list()
610 list->repeated.element[0].type = FAT_OBJECT; in make_unconstrained_list()
611 list->repeated.length = 1; in make_unconstrained_list()
631 list->repeated.count = 0; in make_empty_list()
632 list->repeated.allocated = 0; in make_empty_list()
633 list->repeated.element = NULL; in make_empty_list()
634 list->repeated.length = 0; in make_empty_list()
647 return (list->initial.count == 0 && list->repeated.count == 0); in is_empty_list()
663 unsigned int newcount = list->repeated.count * m; in unfold_loop()
665 i = list->repeated.count; in unfold_loop()
667 for (j = 0; j < list->repeated.count; j++, i++) in unfold_loop()
668 copy_element (&list->repeated.element[i], &list->repeated.element[j]); in unfold_loop()
669 list->repeated.count = newcount; in unfold_loop()
670 list->repeated.length = list->repeated.length * m; in unfold_loop()
683 if (list->repeated.count == 1) in rotate_loop()
692 copy_element (&list->initial.element[i], &list->repeated.element[0]); in rotate_loop()
699 unsigned int n = list->repeated.length; in rotate_loop()
711 s < list->repeated.count && t >= list->repeated.element[s].repcount; in rotate_loop()
712 t -= list->repeated.element[s].repcount, s++) in rotate_loop()
716 ASSERT (s < list->repeated.count); in rotate_loop()
726 newcount = i + q * list->repeated.count + s + (t > 0 ? 1 : 0); in rotate_loop()
729 for (j = 0; j < list->repeated.count; j++, i++) in rotate_loop()
731 &list->repeated.element[j]); in rotate_loop()
733 copy_element (&list->initial.element[i], &list->repeated.element[j]); in rotate_loop()
737 &list->repeated.element[j]); in rotate_loop()
759 oldcount = list->repeated.count; in rotate_loop()
760 newcount = list->repeated.count + (t > 0 ? 1 : 0); in rotate_loop()
764 newelement[i] = list->repeated.element[j]; in rotate_loop()
766 newelement[i] = list->repeated.element[j]; in rotate_loop()
773 free (list->repeated.element); in rotate_loop()
774 list->repeated.element = newelement; in rotate_loop()
797 ASSERT (list->repeated.count > 0); in initial_splitelement()
846 ASSERT (list->repeated.count > 0); in initial_unshare()
1059 if (list->repeated.count > 0) in append_repeated_to_initial()
1064 newcount = list->initial.count + list->repeated.count; in append_repeated_to_initial()
1067 for (j = 0; j < list->repeated.count; j++, i++) in append_repeated_to_initial()
1068 list->initial.element[i] = list->repeated.element[j]; in append_repeated_to_initial()
1070 list->initial.length = list->initial.length + list->repeated.length; in append_repeated_to_initial()
1071 free (list->repeated.element); in append_repeated_to_initial()
1072 list->repeated.element = NULL; in append_repeated_to_initial()
1073 list->repeated.allocated = 0; in append_repeated_to_initial()
1074 list->repeated.count = 0; in append_repeated_to_initial()
1075 list->repeated.length = 0; in append_repeated_to_initial()
1088 ASSERT (list->repeated.count == 0); in backtrack_in_initial()
1134 if (list1->repeated.length > 0 && list2->repeated.length > 0) in make_intersected_list()
1137 unsigned int n1 = list1->repeated.length; in make_intersected_list()
1138 unsigned int n2 = list2->repeated.length; in make_intersected_list()
1148 if (list1->repeated.length > 0 || list2->repeated.length > 0) in make_intersected_list()
1156 if (list1->repeated.length > 0) in make_intersected_list()
1158 if (list2->repeated.length > 0) in make_intersected_list()
1162 if (list1->repeated.length > 0 && list2->repeated.length > 0) in make_intersected_list()
1165 ASSERT (list1->repeated.length == list2->repeated.length); in make_intersected_list()
1174 result->repeated.count = 0; in make_intersected_list()
1175 result->repeated.allocated = 0; in make_intersected_list()
1176 result->repeated.element = NULL; in make_intersected_list()
1177 result->repeated.length = 0; in make_intersected_list()
1224 if (list1->repeated.count == 0 && list2->repeated.count == 0) in make_intersected_list()
1243 else if (list1->repeated.count == 0) in make_intersected_list()
1247 if ((c2 > 0 ? e2->presence : list2->repeated.element[0].presence) in make_intersected_list()
1253 else if (list2->repeated.count == 0) in make_intersected_list()
1257 if ((c1 > 0 ? e1->presence : list1->repeated.element[0].presence) in make_intersected_list()
1274 e1 = list1->repeated.element; c1 = list1->repeated.count; in make_intersected_list()
1275 e2 = list2->repeated.element; c2 = list2->repeated.count; in make_intersected_list()
1282 re = &result->repeated.element[result->repeated.count]; in make_intersected_list()
1300 result->repeated.count++; in make_intersected_list()
1301 result->repeated.length += re->repcount; in make_intersected_list()
1343 : list->repeated.count > 0 in make_intersection_with_empty_list()
1344 && list->repeated.element[0].presence == FCT_REQUIRED) in make_intersection_with_empty_list()
1508 if (list1->repeated.length > 0 && list2->repeated.length > 0) in make_union_list()
1512 unsigned int n1 = list1->repeated.length; in make_union_list()
1513 unsigned int n2 = list2->repeated.length; in make_union_list()
1532 ASSERT (list1->repeated.length == list2->repeated.length); in make_union_list()
1534 else if (list1->repeated.length > 0) in make_union_list()
1541 if (list1->repeated.element[0].presence == FCT_REQUIRED) in make_union_list()
1545 else if (list2->repeated.length > 0) in make_union_list()
1552 if (list2->repeated.element[0].presence == FCT_REQUIRED) in make_union_list()
1563 result->repeated.count = 0; in make_union_list()
1564 result->repeated.allocated = 0; in make_union_list()
1565 result->repeated.element = NULL; in make_union_list()
1566 result->repeated.length = 0; in make_union_list()
1610 ASSERT (list2->repeated.count == 0); in make_union_list()
1650 ASSERT (list1->repeated.count == 0); in make_union_list()
1689 if (list1->repeated.length > 0 && list2->repeated.length > 0) in make_union_list()
1697 e1 = list1->repeated.element; c1 = list1->repeated.count; in make_union_list()
1698 e2 = list2->repeated.element; c2 = list2->repeated.count; in make_union_list()
1705 re = &result->repeated.element[result->repeated.count]; in make_union_list()
1711 result->repeated.count++; in make_union_list()
1712 result->repeated.length += re->repcount; in make_union_list()
1729 else if (list1->repeated.length > 0) in make_union_list()
1735 result->repeated.count = list1->repeated.count; in make_union_list()
1736 result->repeated.allocated = result->repeated.count; in make_union_list()
1737 result->repeated.element = in make_union_list()
1738 XNMALLOC (result->repeated.allocated, struct format_arg); in make_union_list()
1739 for (i = 0; i < list1->repeated.count; i++) in make_union_list()
1740 copy_element (&result->repeated.element[i], in make_union_list()
1741 &list1->repeated.element[i]); in make_union_list()
1742 result->repeated.length = list1->repeated.length; in make_union_list()
1744 else if (list2->repeated.length > 0) in make_union_list()
1750 result->repeated.count = list2->repeated.count; in make_union_list()
1751 result->repeated.allocated = result->repeated.count; in make_union_list()
1752 result->repeated.element = in make_union_list()
1753 XNMALLOC (result->repeated.allocated, struct format_arg); in make_union_list()
1754 for (i = 0; i < list2->repeated.count; i++) in make_union_list()
1755 copy_element (&result->repeated.element[i], in make_union_list()
1756 &list2->repeated.element[i]); in make_union_list()
1757 result->repeated.length = list2->repeated.length; in make_union_list()
1781 : list->repeated.count > 0 in make_union_with_empty_list()
1782 && list->repeated.element[0].presence == FCT_REQUIRED) in make_union_with_empty_list()
1858 if (list->repeated.count == 0) in is_required()
1862 s < list->repeated.count && t >= list->repeated.element[s].repcount; in is_required()
1863 t -= list->repeated.element[s].repcount, s++) in is_required()
1864 if (list->repeated.element[s].presence != FCT_REQUIRED) in is_required()
1870 if (s < list->repeated.count) in is_required()
1872 if (list->repeated.element[s].presence != FCT_REQUIRED) in is_required()
1898 if (list->repeated.count == 0 && list->initial.length <= n) in add_required_constraint()
1936 if (list->repeated.count == 0 && list->initial.length <= n) in add_end_constraint()
1944 : /* n >= list->initial.length */ list->repeated.element[0].presence); in add_end_constraint()
1953 for (i = 0; i < list->repeated.count; i++) in add_end_constraint()
1954 free_element (&list->repeated.element[i]); in add_end_constraint()
1955 if (list->repeated.element != NULL) in add_end_constraint()
1956 free (list->repeated.element); in add_end_constraint()
1957 list->repeated.element = NULL; in add_end_constraint()
1958 list->repeated.allocated = 0; in add_end_constraint()
1959 list->repeated.count = 0; in add_end_constraint()
1960 list->repeated.length = 0; in add_end_constraint()
2081 listlist->repeated.count = 1; in make_repeated_list_of_lists()
2082 listlist->repeated.allocated = 1; in make_repeated_list_of_lists()
2083 listlist->repeated.element = XNMALLOC (1, struct format_arg); in make_repeated_list_of_lists()
2084 listlist->repeated.element[0].repcount = 1; in make_repeated_list_of_lists()
2085 listlist->repeated.element[0].presence = FCT_OPTIONAL; in make_repeated_list_of_lists()
2086 listlist->repeated.element[0].type = FAT_LIST; in make_repeated_list_of_lists()
2087 listlist->repeated.element[0].list = sublist; in make_repeated_list_of_lists()
2088 listlist->repeated.length = 1; in make_repeated_list_of_lists()
2120 if (sublist->repeated.count == 0) in make_repeated_list()
2136 unsigned int Lp = sublist->repeated.length; in make_repeated_list()
2144 tmp.count = sublist->initial.count + sublist->repeated.count; in make_repeated_list()
2149 for (j = 0; j < sublist->repeated.count; i++, j++) in make_repeated_list()
2151 tmp.length = sublist->initial.length + sublist->repeated.length; in make_repeated_list()
2176 list->repeated.count = 0; in make_repeated_list()
2177 list->repeated.allocated = 0; in make_repeated_list()
2178 list->repeated.element = NULL; in make_repeated_list()
2179 list->repeated.length = 0; in make_repeated_list()
2285 if (newcount > list->repeated.allocated) in make_repeated_list()
2287 list->repeated.allocated = newcount; in make_repeated_list()
2288 list->repeated.element = XNMALLOC (newcount, struct format_arg); in make_repeated_list()
2291 list->repeated.element[j] = list->initial.element[i]; in make_repeated_list()
2292 list->repeated.count = newcount; in make_repeated_list()
2293 list->repeated.length = p; in make_repeated_list()
3514 if (list->repeated.count > 0) in print_list()
3517 for (i = 0; i < list->repeated.count; i++) in print_list()
3518 for (j = 0; j < list->repeated.element[i].repcount; j++) in print_list()
3521 print_element (&list->repeated.element[i]); in print_list()