File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed
Framework/Core/include/Framework Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -100,12 +100,22 @@ struct get_pair {
100100 }
101101 size_t diff = self.pairId - count;
102102 if (header->splitPayloadParts > 1 && header->splitPayloadIndex == header->splitPayloadParts ) {
103+ // New style: one header followed by splitPayloadParts contiguous payloads.
103104 count += header->splitPayloadParts ;
104105 if (self.pairId < count) {
105106 return {mi, mi + 1 + diff};
106107 }
107108 mi += header->splitPayloadParts + 1 ;
109+ } else if (header->splitPayloadParts > 1 && header->splitPayloadIndex != header->splitPayloadParts ) {
110+ // Old style multi-part: splitPayloadParts [header, payload] pairs.
111+ // We are at the first pair of the block; jump directly.
112+ if (diff < header->splitPayloadParts ) {
113+ return {mi + 2 * diff, mi + 2 * diff + 1 };
114+ }
115+ count += header->splitPayloadParts ;
116+ mi += 2 * header->splitPayloadParts ;
108117 } else {
118+ // Single [header, payload] pair (splitPayloadParts == 0).
109119 if (self.pairId == count) {
110120 return {mi, mi + 1 };
111121 }
You can’t perform that action at this time.
0 commit comments