Convert absolute offsets to relative in _items:
| 583 | |
| 584 | // Convert absolute offsets to relative in _items: |
| 585 | void Encoder::fixPointers(valueArray *items) { |
| 586 | size_t pointerOrigin = nextWritePos(); |
| 587 | int width = items->wide ? kWide : kNarrow; |
| 588 | for (Value &v : *items) { |
| 589 | if (v.isPointer()) { |
| 590 | ssize_t pos = v._asPointer()->offset<true>() - _base.size; |
| 591 | assert(pos < (ssize_t)pointerOrigin); |
| 592 | bool isExternal = (pos < 0); |
| 593 | v = Pointer(pointerOrigin - pos, width, isExternal && _markExternPtrs); |
| 594 | } |
| 595 | pointerOrigin += width; |
| 596 | } |
| 597 | } |
| 598 | |
| 599 | #pragma mark - ARRAYS / DICTIONARIES: |
| 600 |
nothing calls this directly
no test coverage detected