From 36c4cec85346a11e136b0f95baae2a8fe1db59f2 Mon Sep 17 00:00:00 2001 From: Vasu Nori Date: Tue, 4 Jan 2011 13:15:56 -0800 Subject: [PATCH] don't call methods doing database lock from a synchronized block bug:3188552 Change-Id: I08a73f06aa0cbefddd282885f62b8dcc451b9deb --- .../database/sqlite/SQLiteClosable.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/core/java/android/database/sqlite/SQLiteClosable.java b/core/java/android/database/sqlite/SQLiteClosable.java index 93f9a71e64f50..01e9fb3347b0e 100644 --- a/core/java/android/database/sqlite/SQLiteClosable.java +++ b/core/java/android/database/sqlite/SQLiteClosable.java @@ -38,20 +38,22 @@ public abstract class SQLiteClosable { } public void releaseReference() { + boolean refCountIsZero = false; synchronized(this) { - mReferenceCount--; - if (mReferenceCount == 0) { - onAllReferencesReleased(); - } + refCountIsZero = --mReferenceCount == 0; + } + if (refCountIsZero) { + onAllReferencesReleased(); } } public void releaseReferenceFromContainer() { + boolean refCountIsZero = false; synchronized(this) { - mReferenceCount--; - if (mReferenceCount == 0) { - onAllReferencesReleasedFromContainer(); - } + refCountIsZero = --mReferenceCount == 0; + } + if (refCountIsZero) { + onAllReferencesReleasedFromContainer(); } }