Merge "Ensure that debug builds crash again if there is a BinderProxy leak."

am: db122f90d9

Change-Id: Ibc470d844139fd2f74434a26d01903c67eb51f86
This commit is contained in:
Hans Boehm
2017-12-01 15:46:09 +00:00
committed by android-build-merger

View File

@@ -765,6 +765,8 @@ final class BinderProxy implements IBinder {
private static final int LOG_MAIN_INDEX_SIZE = 8;
private static final int MAIN_INDEX_SIZE = 1 << LOG_MAIN_INDEX_SIZE;
private static final int MAIN_INDEX_MASK = MAIN_INDEX_SIZE - 1;
// Debuggable builds will throw an AssertionError if the number of map entries exceeds:
private static final int CRASH_AT_SIZE = 5_000;
/**
* We next warn when we exceed this bucket size.
@@ -886,9 +888,14 @@ final class BinderProxy implements IBinder {
keyArray[size] = key;
}
if (size >= mWarnBucketSize) {
final int total_size = size();
Log.v(Binder.TAG, "BinderProxy map growth! bucket size = " + size
+ " total = " + size());
+ " total = " + total_size);
mWarnBucketSize += WARN_INCREMENT;
if (Build.IS_DEBUGGABLE && total_size > CRASH_AT_SIZE) {
throw new AssertionError("Binder ProxyMap has too many entries. "
+ "BinderProxy leak?");
}
}
}