diff options
author | Mihai Preda <preda@google.com> | 2009-05-18 20:15:32 +0200 |
---|---|---|
committer | Mihai Preda <preda@google.com> | 2009-05-19 14:15:14 +0200 |
commit | c3320dbe1c7acf040a3ec895129d8aae09c570ea (patch) | |
tree | 6ff817107e7b1ba755ef7e266c5b752b3e45e694 | |
parent | 5615d35b28119865cd65a79814a69f910e0a3862 (diff) | |
download | frameworks_base-c3320dbe1c7acf040a3ec895129d8aae09c570ea.zip frameworks_base-c3320dbe1c7acf040a3ec895129d8aae09c570ea.tar.gz frameworks_base-c3320dbe1c7acf040a3ec895129d8aae09c570ea.tar.bz2 |
Minor performance improvement when filtering intents by package.
Don't consider the activities that have no intent filters.
-rw-r--r-- | services/java/com/android/server/PackageManagerService.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index a3c702f..1471435 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -2900,8 +2900,13 @@ class PackageManagerService extends IPackageManager.Stub { int N = packageActivities.size(); ArrayList<ArrayList<PackageParser.ActivityIntentInfo>> listCut = new ArrayList<ArrayList<PackageParser.ActivityIntentInfo>>(N); + + ArrayList<PackageParser.ActivityIntentInfo> intentFilters; for (int i = 0; i < N; ++i) { - listCut.add(packageActivities.get(i).intents); + intentFilters = packageActivities.get(i).intents; + if (intentFilters != null && intentFilters.size() > 0) { + listCut.add(intentFilters); + } } return super.queryIntentFromList(intent, resolvedType, defaultOnly, listCut); } |