| 572 | // indexes |
| 573 | |
| 574 | BASEKIT_API void UArray_duplicateIndexes(UArray *self) { |
| 575 | size_t size = self->size; |
| 576 | int itemSize = self->itemSize; |
| 577 | |
| 578 | if (size) { |
| 579 | size_t si = size - 1; |
| 580 | size_t di = (size * 2) - 1; |
| 581 | uint8_t *b; |
| 582 | |
| 583 | UArray_setSize_(self, self->size * 2); |
| 584 | |
| 585 | b = self->data; |
| 586 | |
| 587 | for (;;) { |
| 588 | uint8_t *src = b + si * itemSize; |
| 589 | uint8_t *dest = b + di * itemSize; |
| 590 | |
| 591 | memcpy(dest, src, itemSize); |
| 592 | memcpy(dest - itemSize, src, itemSize); |
| 593 | |
| 594 | if (si == 0) |
| 595 | break; |
| 596 | di = di - 2; |
| 597 | si--; |
| 598 | } |
| 599 | } |
| 600 | } |
| 601 | |
| 602 | void UArray_removeOddIndexes(UArray *self) { |
| 603 | size_t itemSize = self->itemSize; |
nothing calls this directly
no test coverage detected