From 3e7e7f025e8d7dc6ab8c361118c8e949bdf3e451 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Mon, 27 Aug 2012 14:33:53 -0700 Subject: [PATCH] Fix improper use of CloseGuard. Change-Id: I37131a86e27a4be55956384a3566de9dcfd90fe5 --- core/java/android/view/DisplayEventReceiver.java | 10 +++++++++- core/java/android/view/InputEventReceiver.java | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) 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;