From ab2a3b0061f26ebc95bc320fcfac316ccf14f567 Mon Sep 17 00:00:00 2001 From: Alex Klyubin Date: Sat, 11 Jun 2016 17:42:29 -0700 Subject: [PATCH] Fix inefficiency in APK entry data alignment. 26f00cda4b979d7e74db6872990682335b36612b introduced a bug where an APK entry's extra field is padded for alignment purposes when no padding is necessary because the entry is aligned without any padding bytes. Bug: 27461702 Change-Id: Icb164dbaa26d9686412e2920318a9f40c5ce9751 --- tools/signapk/src/com/android/signapk/SignApk.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/signapk/src/com/android/signapk/SignApk.java b/tools/signapk/src/com/android/signapk/SignApk.java index d84d0700d..5ba0666ba 100644 --- a/tools/signapk/src/com/android/signapk/SignApk.java +++ b/tools/signapk/src/com/android/signapk/SignApk.java @@ -445,7 +445,8 @@ class SignApk { int extraPaddingSizeBytes = 0; if (alignment > 0) { long paddingStartOffset = offset + ALIGNMENT_ZIP_EXTRA_DATA_FIELD_MIN_SIZE_BYTES; - extraPaddingSizeBytes = alignment - (int) (paddingStartOffset % alignment); + extraPaddingSizeBytes = + (alignment - (int) (paddingStartOffset % alignment)) % alignment; } byte[] extra = new byte[ALIGNMENT_ZIP_EXTRA_DATA_FIELD_MIN_SIZE_BYTES + extraPaddingSizeBytes]; -- 2.11.0