From 7582c132f9bb065cc9f556b6da5185937bc9edfc Mon Sep 17 00:00:00 2001 From: Ax333l Date: Tue, 25 Apr 2023 17:34:54 +0200 Subject: [PATCH] fix: archive2 alignment --- .../java/com/reandroid/archive2/writer/ZipAligner.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/reandroid/archive2/writer/ZipAligner.java b/src/main/java/com/reandroid/archive2/writer/ZipAligner.java index 4152d22..94671d3 100644 --- a/src/main/java/com/reandroid/archive2/writer/ZipAligner.java +++ b/src/main/java/com/reandroid/archive2/writer/ZipAligner.java @@ -29,7 +29,6 @@ public class ZipAligner { private final Map alignmentMap; private int defaultAlignment; private boolean enableDataDescriptor; - private long mTotalPadding; private long mCurrentOffset; public ZipAligner(){ @@ -55,7 +54,6 @@ public class ZipAligner { this.defaultAlignment = defaultAlignment; } public void reset(){ - mTotalPadding = 0; mCurrentOffset = 0; } public void setEnableDataDescriptor(boolean enableDataDescriptor) { @@ -63,15 +61,15 @@ public class ZipAligner { } void align(InputSource inputSource, LocalFileHeader lfh){ + lfh.setExtra(null); int padding; if(inputSource.getMethod() != ZipEntry.STORED){ padding = 0; createDataDescriptor(lfh); }else { int alignment = getAlignment(inputSource.getAlias()); - long newOffset = mCurrentOffset + mTotalPadding; - padding = (int) ((alignment - (newOffset % alignment)) % alignment); - mTotalPadding += padding; + long dataOffset = mCurrentOffset + lfh.countBytes(); + padding = (int) ((alignment - (dataOffset % alignment)) % alignment); } lfh.setExtra(new byte[padding]); mCurrentOffset += lfh.getDataSize() + lfh.countBytes();