list.c.082i.materialize-all-clones 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. uxListRemove (struct ListItem_t * const pxItemToRemove)
  2. {
  3. struct List_t * const pxList;
  4. UBaseType_t D.6028;
  5. struct xLIST_ITEM * _1;
  6. struct xLIST_ITEM * _2;
  7. struct xLIST_ITEM * _3;
  8. struct xLIST_ITEM * _4;
  9. struct ListItem_t * _5;
  10. struct xLIST_ITEM * _6;
  11. long unsigned int _7;
  12. long unsigned int _8;
  13. UBaseType_t _18;
  14. <bb 2> :
  15. pxList_12 = pxItemToRemove_11(D)->pvContainer;
  16. _1 = pxItemToRemove_11(D)->pxNext;
  17. _2 = pxItemToRemove_11(D)->pxPrevious;
  18. _1->pxPrevious = _2;
  19. _3 = pxItemToRemove_11(D)->pxPrevious;
  20. _4 = pxItemToRemove_11(D)->pxNext;
  21. _3->pxNext = _4;
  22. _5 = pxList_12->pxIndex;
  23. if (pxItemToRemove_11(D) == _5)
  24. goto <bb 3>; [INV]
  25. else
  26. goto <bb 4>; [INV]
  27. <bb 3> :
  28. _6 = pxItemToRemove_11(D)->pxPrevious;
  29. pxList_12->pxIndex = _6;
  30. <bb 4> :
  31. pxItemToRemove_11(D)->pvContainer = 0B;
  32. _7 ={v} pxList_12->uxNumberOfItems;
  33. _8 = _7 + 4294967295;
  34. pxList_12->uxNumberOfItems ={v} _8;
  35. _18 ={v} pxList_12->uxNumberOfItems;
  36. <bb 5> :
  37. <L3>:
  38. return _18;
  39. }
  40. vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  41. {
  42. const TickType_t xValueOfInsertion;
  43. struct ListItem_t * pxIterator;
  44. struct xLIST_ITEM * _1;
  45. long unsigned int _2;
  46. struct xLIST_ITEM * _3;
  47. struct xLIST_ITEM * _4;
  48. long unsigned int _5;
  49. long unsigned int _6;
  50. <bb 2> :
  51. xValueOfInsertion_11 = pxNewListItem_10(D)->xItemValue;
  52. if (xValueOfInsertion_11 == 4294967295)
  53. goto <bb 3>; [INV]
  54. else
  55. goto <bb 4>; [INV]
  56. <bb 3> :
  57. pxIterator_15 = pxList_12(D)->xListEnd.pxPrevious;
  58. goto <bb 7>; [INV]
  59. <bb 4> :
  60. pxIterator_13 = &pxList_12(D)->xListEnd;
  61. goto <bb 6>; [INV]
  62. <bb 5> :
  63. pxIterator_14 = pxIterator_7->pxNext;
  64. <bb 6> :
  65. # pxIterator_7 = PHI <pxIterator_13(4), pxIterator_14(5)>
  66. _1 = pxIterator_7->pxNext;
  67. _2 = _1->xItemValue;
  68. if (xValueOfInsertion_11 >= _2)
  69. goto <bb 5>; [INV]
  70. else
  71. goto <bb 7>; [INV]
  72. <bb 7> :
  73. # pxIterator_8 = PHI <pxIterator_15(3), pxIterator_7(6)>
  74. _3 = pxIterator_8->pxNext;
  75. pxNewListItem_10(D)->pxNext = _3;
  76. _4 = pxNewListItem_10(D)->pxNext;
  77. _4->pxPrevious = pxNewListItem_10(D);
  78. pxNewListItem_10(D)->pxPrevious = pxIterator_8;
  79. pxIterator_8->pxNext = pxNewListItem_10(D);
  80. pxNewListItem_10(D)->pvContainer = pxList_12(D);
  81. _5 ={v} pxList_12(D)->uxNumberOfItems;
  82. _6 = _5 + 1;
  83. pxList_12(D)->uxNumberOfItems ={v} _6;
  84. return;
  85. }
  86. vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  87. {
  88. struct ListItem_t * const pxIndex;
  89. struct xLIST_ITEM * _1;
  90. struct xLIST_ITEM * _2;
  91. long unsigned int _3;
  92. long unsigned int _4;
  93. <bb 2> :
  94. pxIndex_7 = pxList_6(D)->pxIndex;
  95. pxNewListItem_8(D)->pxNext = pxIndex_7;
  96. _1 = pxIndex_7->pxPrevious;
  97. pxNewListItem_8(D)->pxPrevious = _1;
  98. _2 = pxIndex_7->pxPrevious;
  99. _2->pxNext = pxNewListItem_8(D);
  100. pxIndex_7->pxPrevious = pxNewListItem_8(D);
  101. pxNewListItem_8(D)->pvContainer = pxList_6(D);
  102. _3 ={v} pxList_6(D)->uxNumberOfItems;
  103. _4 = _3 + 1;
  104. pxList_6(D)->uxNumberOfItems ={v} _4;
  105. return;
  106. }
  107. vListInitialiseItem (struct ListItem_t * const pxItem)
  108. {
  109. <bb 2> :
  110. pxItem_2(D)->pvContainer = 0B;
  111. return;
  112. }
  113. vListInitialise (struct List_t * const pxList)
  114. {
  115. struct MiniListItem_t * _1;
  116. struct MiniListItem_t * _2;
  117. struct MiniListItem_t * _3;
  118. <bb 2> :
  119. _1 = &pxList_4(D)->xListEnd;
  120. pxList_4(D)->pxIndex = _1;
  121. pxList_4(D)->xListEnd.xItemValue = 4294967295;
  122. _2 = &pxList_4(D)->xListEnd;
  123. pxList_4(D)->xListEnd.pxNext = _2;
  124. _3 = &pxList_4(D)->xListEnd;
  125. pxList_4(D)->xListEnd.pxPrevious = _3;
  126. pxList_4(D)->uxNumberOfItems ={v} 0;
  127. return;
  128. }