diff options
author | Brad Fitzpatrick <bradfitz@android.com> | 2010-09-30 16:22:36 -0700 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@android.com> | 2010-10-01 12:54:10 -0700 |
commit | 32e60c7942eeba920ec5c27b372ec0899fd75a20 (patch) | |
tree | ed5d3bc9fe7f029ba7467fe5188e5d2068d48c02 /core/java/android/database/sqlite/SQLiteCursor.java | |
parent | f7681f84918c27f6a626681ce37ed2a236c44e82 (diff) | |
download | frameworks_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.java | 8 |
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 { |