summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Engström <henrik.engstrom@sonyericsson.com>2012-02-21 09:05:17 +0100
committerTanguy Pruvot <tanguy.pruvot@gmail.com>2012-06-07 16:51:54 +0200
commit28bffc43fb7c54bf8924e65783a91429a5b558f4 (patch)
treed41e68224b15863bfb500db7f5ab62606875c41a
parent3d50e44ed1e616d5a52548082aab02de142491c2 (diff)
downloadframeworks_base-28bffc43fb7c54bf8924e65783a91429a5b558f4.zip
frameworks_base-28bffc43fb7c54bf8924e65783a91429a5b558f4.tar.gz
frameworks_base-28bffc43fb7c54bf8924e65783a91429a5b558f4.tar.bz2
Fix for too many binder calls in packagemanager
The packagemanager uses a ParceledListSlice to send back its lists of installed packages and apps. The list slice has a method append which, in addition to adding the item to the list, also returns true if the list has passed a size limit (about 1/4 of the total possible IPC parcel size) to let the caller know that he should send the slice. However, when used by the pm, it has an extra ! that makes it send whenever it ISN'T over this limit instead (and conversely, not send if it is under). This causes a lot more calls than needed since it sends tiny one item slices instead of larger ones. This patch removes the extra ! making it behave correctly. Change-Id: I8db46d380a25406b55f3214aee1505e81949acc5
-rw-r--r--services/java/com/android/server/pm/PackageManagerService.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 8719e8e..978eb69 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -2586,7 +2586,7 @@ public class PackageManagerService extends IPackageManager.Stub {
}
}
- if (pi != null && !list.append(pi)) {
+ if (pi != null && list.append(pi)) {
break;
}
}
@@ -2647,7 +2647,7 @@ public class PackageManagerService extends IPackageManager.Stub {
}
}
- if (ai != null && !list.append(ai)) {
+ if (ai != null && list.append(ai)) {
break;
}
}