Loading core/java/android/app/ActivityThread.java +1 −1 Original line number Diff line number Diff line Loading @@ -973,7 +973,7 @@ public final class ActivityThread { long nativeFree = Debug.getNativeHeapFreeSize() / 1024; Runtime runtime = Runtime.getRuntime(); runtime.gc(); // Do GC since countInstancesOfClass counts unreachable objects. long dalvikMax = runtime.totalMemory() / 1024; long dalvikFree = runtime.freeMemory() / 1024; long dalvikAllocated = dalvikMax - dalvikFree; Loading core/java/android/os/StrictMode.java +12 −9 Original line number Diff line number Diff line Loading @@ -1520,7 +1520,8 @@ public final class StrictMode { */ public static void conditionallyCheckInstanceCounts() { VmPolicy policy = getVmPolicy(); if (policy.classInstanceLimit.size() == 0) { int policySize = policy.classInstanceLimit.size(); if (policySize == 0) { return; } Loading @@ -1529,17 +1530,19 @@ public final class StrictMode { System.gc(); // Note: classInstanceLimit is immutable, so this is lock-free for (Map.Entry<Class, Integer> entry : policy.classInstanceLimit.entrySet()) { Class klass = entry.getKey(); int limit = entry.getValue(); long instances = VMDebug.countInstancesOfClass(klass, false); if (instances <= limit) { continue; } // Create the classes array. Class[] classes = policy.classInstanceLimit.keySet().toArray(new Class[policySize]); long[] instanceCounts = VMDebug.countInstancesOfClasses(classes, false); for (int i = 0; i < classes.length; ++i) { Class klass = classes[i]; int limit = policy.classInstanceLimit.get(klass); long instances = instanceCounts[i]; if (instances > limit) { Throwable tr = new InstanceCountViolation(klass, instances, limit); onVmPolicyViolation(tr.getMessage(), tr); } } } private static long sLastInstanceCountCheckMillis = 0; private static boolean sIsIdlerRegistered = false; // guarded by StrictMode.class Loading Loading
core/java/android/app/ActivityThread.java +1 −1 Original line number Diff line number Diff line Loading @@ -973,7 +973,7 @@ public final class ActivityThread { long nativeFree = Debug.getNativeHeapFreeSize() / 1024; Runtime runtime = Runtime.getRuntime(); runtime.gc(); // Do GC since countInstancesOfClass counts unreachable objects. long dalvikMax = runtime.totalMemory() / 1024; long dalvikFree = runtime.freeMemory() / 1024; long dalvikAllocated = dalvikMax - dalvikFree; Loading
core/java/android/os/StrictMode.java +12 −9 Original line number Diff line number Diff line Loading @@ -1520,7 +1520,8 @@ public final class StrictMode { */ public static void conditionallyCheckInstanceCounts() { VmPolicy policy = getVmPolicy(); if (policy.classInstanceLimit.size() == 0) { int policySize = policy.classInstanceLimit.size(); if (policySize == 0) { return; } Loading @@ -1529,17 +1530,19 @@ public final class StrictMode { System.gc(); // Note: classInstanceLimit is immutable, so this is lock-free for (Map.Entry<Class, Integer> entry : policy.classInstanceLimit.entrySet()) { Class klass = entry.getKey(); int limit = entry.getValue(); long instances = VMDebug.countInstancesOfClass(klass, false); if (instances <= limit) { continue; } // Create the classes array. Class[] classes = policy.classInstanceLimit.keySet().toArray(new Class[policySize]); long[] instanceCounts = VMDebug.countInstancesOfClasses(classes, false); for (int i = 0; i < classes.length; ++i) { Class klass = classes[i]; int limit = policy.classInstanceLimit.get(klass); long instances = instanceCounts[i]; if (instances > limit) { Throwable tr = new InstanceCountViolation(klass, instances, limit); onVmPolicyViolation(tr.getMessage(), tr); } } } private static long sLastInstanceCountCheckMillis = 0; private static boolean sIsIdlerRegistered = false; // guarded by StrictMode.class Loading