aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Sauer <jsauer@google.com>2016-05-10 17:57:05 +0100
committerJoachim Sauer <jsauer@google.com>2016-05-10 17:58:21 +0100
commit8f27032b2aaf133892562f83314efa39a9c2353c (patch)
treef7a1cf862552cde3e02d72083790af013ab45a53
parent7a133242429c2c29bd968d4b1fc5f7f3bb4375e8 (diff)
downloadjdiff-8f27032b2aaf133892562f83314efa39a9c2353c.tar.gz
Fix merging add/remove on same method.android-n-preview-5android-n-preview-4android-n-mr2-preview-1android-n-mr1-preview-2android-n-mr1-preview-1android-n-iot-release-smart-display-r2android-n-iot-release-smart-displayandroid-n-iot-release-polk-at1android-n-iot-release-lg-thinq-wk7android-n-iot-release-ihome-igv1android-n-iot-preview-4android-n-iot-preview-2android-cts-7.0_r9android-cts-7.0_r8android-cts-7.0_r7android-cts-7.0_r6android-cts-7.0_r5android-cts-7.0_r4android-cts-7.0_r33android-cts-7.0_r32android-cts-7.0_r31android-cts-7.0_r30android-cts-7.0_r3android-cts-7.0_r29android-cts-7.0_r28android-cts-7.0_r27android-cts-7.0_r26android-cts-7.0_r25android-cts-7.0_r24android-cts-7.0_r23android-cts-7.0_r22android-cts-7.0_r21android-cts-7.0_r20android-cts-7.0_r2android-cts-7.0_r19android-cts-7.0_r18android-cts-7.0_r17android-cts-7.0_r16android-cts-7.0_r15android-cts-7.0_r14android-cts-7.0_r13android-cts-7.0_r12android-cts-7.0_r11android-cts-7.0_r10android-cts-7.0_r1android-7.0.0_r9android-7.0.0_r8android-7.0.0_r7android-7.0.0_r6android-7.0.0_r5android-7.0.0_r4android-7.0.0_r36android-7.0.0_r35android-7.0.0_r34android-7.0.0_r33android-7.0.0_r32android-7.0.0_r31android-7.0.0_r30android-7.0.0_r3android-7.0.0_r29android-7.0.0_r28android-7.0.0_r27android-7.0.0_r24android-7.0.0_r21android-7.0.0_r19android-7.0.0_r17android-7.0.0_r15android-7.0.0_r14android-7.0.0_r13android-7.0.0_r12android-7.0.0_r11android-7.0.0_r10android-7.0.0_r1nougat-releasenougat-mr0.5-releasenougat-iot-releasenougat-devnougat-cts-releasenougat-bugfix-releasen-mr2-preview-1n-mr1-preview-1n-iot-preview-4n-iot-preview-2
Changes to methods are detected as both addition/removal and merged into a single "change" entry in a separate step. The code that searched for the equivalent "remove" step only ever looked at the first removed method with that name, ch caused the merging to change if several methods with the same name were changed at once (for example several overloads were precated at once). Bug: 27582395 Change-Id: I9718709de4d5e70c291c92ca2801e922f98a39a1
-rwxr-xr-xsrc/jdiff/MergeChanges.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/jdiff/MergeChanges.java b/src/jdiff/MergeChanges.java
index d253ff4..7ef0a84 100755
--- a/src/jdiff/MergeChanges.java
+++ b/src/jdiff/MergeChanges.java
@@ -210,9 +210,10 @@ class MergeChanges {
for (int i = startAdded; i <= endAdded; i++) {
MethodAPI addedMethod2 = (MethodAPI)(classDiff.methodsAdded.get(i));
if (addedMethod2.inheritedFrom_ == null &&
- removedMethod.equalSignatures(addedMethod2))
+ removedMethod.equalSignatures(addedMethod2)) {
addedIdx = i;
break;
+ }
}
if (addedIdx == -1)
return;