diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 27c65f036500a..3e117d49a3b84 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -195,7 +195,15 @@ public class PackageParser { if ((flags&PackageManager.GET_ACTIVITIES) != 0) { int N = p.activities.size(); if (N > 0) { - pi.activities = new ActivityInfo[N]; + if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) { + pi.activities = new ActivityInfo[N]; + } else { + int num = 0; + for (int i=0; i 0) { - pi.receivers = new ActivityInfo[N]; + if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) { + pi.receivers = new ActivityInfo[N]; + } else { + int num = 0; + for (int i=0; i 0) { - pi.services = new ServiceInfo[N]; + if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) { + pi.services = new ServiceInfo[N]; + } else { + int num = 0; + for (int i=0; i 0) { - pi.providers = new ProviderInfo[N]; + if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) { + pi.providers = new ProviderInfo[N]; + } else { + int num = 0; + for (int i=0; i