Skip to content

Commit 08009f3

Browse files
stepeosdwrensha
authored andcommitted
fix copying to not overwrite before offset
1 parent c9e4512 commit 08009f3

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

runtime/src/main/java/org/capnproto/WireHelpers.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,14 @@ static Data.Builder setDataPointer(int refOffset,
850850
SegmentBuilder segment,
851851
Data.Reader value) {
852852
Data.Builder builder = initDataPointer(refOffset, segment, value.size);
853+
int originalSrcPosition = value.buffer.position();
854+
int originalDstPosition = builder.buffer.position();
855+
builder.buffer.position(builder.offset);
856+
//# copy from src offset until src end
853857
builder.buffer.put(value.buffer);
858+
//# restore original positions
859+
builder.buffer.position(originalDstPosition);
860+
value.buffer.position(originalSrcPosition);
854861
return builder;
855862
}
856863

0 commit comments

Comments
 (0)