diff options
author | Henrik Engström <henrik.engstrom@sonyericsson.com> | 2012-02-21 09:05:17 +0100 |
---|---|---|
committer | Tanguy Pruvot <tanguy.pruvot@gmail.com> | 2012-06-07 16:51:54 +0200 |
commit | 28bffc43fb7c54bf8924e65783a91429a5b558f4 (patch) | |
tree | d41e68224b15863bfb500db7f5ab62606875c41a | |
parent | 3d50e44ed1e616d5a52548082aab02de142491c2 (diff) | |
download | frameworks_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.java | 4 |
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; } } |