diff --git a/core/java/android/view/DisplayEventReceiver.java b/core/java/android/view/DisplayEventReceiver.java index 6c2e540185922..0b138c2599f5b 100644 --- a/core/java/android/view/DisplayEventReceiver.java +++ b/core/java/android/view/DisplayEventReceiver.java @@ -66,7 +66,7 @@ public abstract class DisplayEventReceiver { @Override protected void finalize() throws Throwable { try { - dispose(); + dispose(true); } finally { super.finalize(); } @@ -76,9 +76,17 @@ public abstract class DisplayEventReceiver { * Disposes the receiver. */ public void dispose() { + dispose(false); + } + + private void dispose(boolean finalized) { if (mCloseGuard != null) { + if (finalized) { + mCloseGuard.warnIfOpen(); + } mCloseGuard.close(); } + if (mReceiverPtr != 0) { nativeDispose(mReceiverPtr); mReceiverPtr = 0; diff --git a/core/java/android/view/InputEventReceiver.java b/core/java/android/view/InputEventReceiver.java index 9c56782f9091d..117c101832274 100644 --- a/core/java/android/view/InputEventReceiver.java +++ b/core/java/android/view/InputEventReceiver.java @@ -73,7 +73,7 @@ public abstract class InputEventReceiver { @Override protected void finalize() throws Throwable { try { - dispose(); + dispose(true); } finally { super.finalize(); } @@ -83,9 +83,17 @@ public abstract class InputEventReceiver { * Disposes the receiver. */ public void dispose() { + dispose(false); + } + + private void dispose(boolean finalized) { if (mCloseGuard != null) { + if (finalized) { + mCloseGuard.warnIfOpen(); + } mCloseGuard.close(); } + if (mReceiverPtr != 0) { nativeDispose(mReceiverPtr); mReceiverPtr = 0;