mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 01:16:49 +00:00
Don't throw exception for SafeCloseable objects
* SafeCloseable objects will have their close() method called when SandboxContext is destroyed, so we can leave them out of the allowList. * Long term we may want to remove the allowList altogether and just rely on safeCloseable Test: Locally passes Flag: not needed Bug: 280463854 Change-Id: I317a9d6639b25a522fe9dbcf2655b55ec68fded6
This commit is contained in:
@@ -136,16 +136,19 @@ public class MainThreadInitializedObject<T> {
|
||||
if (mDestroyed) {
|
||||
Log.e(TAG, "Static object access with a destroyed context");
|
||||
}
|
||||
if (!mAllowedObjects.contains(object)) {
|
||||
throw new IllegalStateException(
|
||||
"Leaking unknown objects " + object + " " + provider);
|
||||
}
|
||||
|
||||
T t = (T) mObjectMap.get(object);
|
||||
if (t != null) {
|
||||
return t;
|
||||
}
|
||||
if (Looper.myLooper() == Looper.getMainLooper()) {
|
||||
t = createObject(provider);
|
||||
// Check if we've explicitly allowed the object or if it's a SafeCloseable,
|
||||
// it will get destroyed in onDestroy()
|
||||
if (!mAllowedObjects.contains(object) && !(t instanceof SafeCloseable)) {
|
||||
throw new IllegalStateException(
|
||||
"Leaking unknown objects " + object + " " + provider + " " + t);
|
||||
}
|
||||
mObjectMap.put(object, t);
|
||||
mOrderedObjects.add(t);
|
||||
return t;
|
||||
|
||||
Reference in New Issue
Block a user