(int countMax)
| 85 | } |
| 86 | |
| 87 | private void compactRanges(int countMax) |
| 88 | { |
| 89 | if (!this.rangeList.isEmpty()) |
| 90 | { |
| 91 | VboRange vborange = this.compactRangeLast; |
| 92 | |
| 93 | if (vborange == null || !this.rangeList.contains(vborange.getNode())) |
| 94 | { |
| 95 | vborange = (VboRange)this.rangeList.getFirst().getItem(); |
| 96 | } |
| 97 | |
| 98 | int i = vborange.getPosition(); |
| 99 | VboRange vborange1 = vborange.getPrev(); |
| 100 | |
| 101 | if (vborange1 == null) |
| 102 | { |
| 103 | i = 0; |
| 104 | } |
| 105 | else |
| 106 | { |
| 107 | i = vborange1.getPositionNext(); |
| 108 | } |
| 109 | |
| 110 | int j = 0; |
| 111 | |
| 112 | while (vborange != null && j < countMax) |
| 113 | { |
| 114 | ++j; |
| 115 | |
| 116 | if (vborange.getPosition() == i) |
| 117 | { |
| 118 | i += vborange.getSize(); |
| 119 | vborange = vborange.getNext(); |
| 120 | } |
| 121 | else |
| 122 | { |
| 123 | int k = vborange.getPosition() - i; |
| 124 | |
| 125 | if (vborange.getSize() <= k) |
| 126 | { |
| 127 | this.copyVboData(vborange.getPosition(), i, vborange.getSize()); |
| 128 | vborange.setPosition(i); |
| 129 | i += vborange.getSize(); |
| 130 | vborange = vborange.getNext(); |
| 131 | } |
| 132 | else |
| 133 | { |
| 134 | this.checkVboSize(this.positionTop + vborange.getSize()); |
| 135 | this.copyVboData(vborange.getPosition(), this.positionTop, vborange.getSize()); |
| 136 | vborange.setPosition(this.positionTop); |
| 137 | this.positionTop += vborange.getSize(); |
| 138 | VboRange vborange2 = vborange.getNext(); |
| 139 | this.rangeList.remove(vborange.getNode()); |
| 140 | this.rangeList.addLast(vborange.getNode()); |
| 141 | vborange = vborange2; |
| 142 | } |
| 143 | } |
| 144 | } |
no test coverage detected