Fix offset

This commit is contained in:
LoveSy 2021-10-21 10:29:28 +08:00
parent 072845650d
commit 826f9abec3
1 changed files with 4 additions and 4 deletions

View File

@ -389,8 +389,8 @@ public class ExtraField {
public static class LinkingEntrySegment implements Segment { public static class LinkingEntrySegment implements Segment {
private final StoredEntry linkingEntry; private final StoredEntry linkingEntry;
private int dataOffset = 0; private int dataOffset = -1;
private long zipOffset = 0; private long zipOffset = -1;
public LinkingEntrySegment(StoredEntry linkingEntry) throws IOException { public LinkingEntrySegment(StoredEntry linkingEntry) throws IOException {
Preconditions.checkArgument(linkingEntry.isLinkingEntry(), "linkingEntry is not a linking entry"); Preconditions.checkArgument(linkingEntry.isLinkingEntry(), "linkingEntry is not a linking entry");
@ -414,8 +414,8 @@ public class ExtraField {
@Override @Override
public void write(ByteBuffer out) throws IOException { public void write(ByteBuffer out) throws IOException {
if (dataOffset == 0 || zipOffset == 0) { if (dataOffset < 0 || zipOffset < 0) {
throw new IOException("linking entry has 0 offset"); throw new IOException("linking entry has wrong offset");
} }
if (!linkingEntry.isDummyEntry()) { if (!linkingEntry.isDummyEntry()) {
LittleEndianUtils.writeUnsigned2Le(out, LINKING_ENTRY_EXTRA_DATA_FIELD_HEADER_ID); LittleEndianUtils.writeUnsigned2Le(out, LINKING_ENTRY_EXTRA_DATA_FIELD_HEADER_ID);