summaryrefslogtreecommitdiffstats
path: root/core/java/android/database/sqlite/SQLiteCursor.java
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@android.com>2010-09-30 16:22:36 -0700
committerBrad Fitzpatrick <bradfitz@android.com>2010-10-01 12:54:10 -0700
commit32e60c7942eeba920ec5c27b372ec0899fd75a20 (patch)
treeed5d3bc9fe7f029ba7467fe5188e5d2068d48c02 /core/java/android/database/sqlite/SQLiteCursor.java
parentf7681f84918c27f6a626681ce37ed2a236c44e82 (diff)
downloadframeworks_base-32e60c7942eeba920ec5c27b372ec0899fd75a20.zip
frameworks_base-32e60c7942eeba920ec5c27b372ec0899fd75a20.tar.gz
frameworks_base-32e60c7942eeba920ec5c27b372ec0899fd75a20.tar.bz2
Update StrictMode's public API.
This makes it more future-proof and maintainable, not exposing the internal bitpacking state. The implementation is unchanged (the policy is still just an int we pass around). Also starts to introduce VmPolicy, for things which are process-wide, not per-thread. As an initial user, make SQLite's Cursor finalization leak warnings use StrictMode. Change-Id: Idedfba4e965716f5089a52036421460b1f383725
Diffstat (limited to 'core/java/android/database/sqlite/SQLiteCursor.java')
-rw-r--r--core/java/android/database/sqlite/SQLiteCursor.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/database/sqlite/SQLiteCursor.java b/core/java/android/database/sqlite/SQLiteCursor.java
index c7e58fa..d8dcaf7 100644
--- a/core/java/android/database/sqlite/SQLiteCursor.java
+++ b/core/java/android/database/sqlite/SQLiteCursor.java
@@ -24,6 +24,7 @@ import android.database.SQLException;
import android.os.Handler;
import android.os.Message;
import android.os.Process;
+import android.os.StrictMode;
import android.text.TextUtils;
import android.util.Config;
import android.util.Log;
@@ -582,11 +583,14 @@ public class SQLiteCursor extends AbstractWindowedCursor {
try {
// if the cursor hasn't been closed yet, close it first
if (mWindow != null) {
- int len = mQuery.mSql.length();
- Log.e(TAG, "Finalizing a Cursor that has not been deactivated or closed. " +
+ if (StrictMode.vmSqliteObjectLeaksEnabled()) {
+ int len = mQuery.mSql.length();
+ StrictMode.onSqliteObjectLeaked(
+ "Finalizing a Cursor that has not been deactivated or closed. " +
"database = " + mDatabase.getPath() + ", table = " + mEditTable +
", query = " + mQuery.mSql.substring(0, (len > 100) ? 100 : len),
mStackTrace);
+ }
close();
SQLiteDebug.notifyActiveCursorFinalized();
} else {