summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/database/sqlite/SQLiteDatabase.java2
-rw-r--r--core/jni/android_database_SQLiteDatabase.cpp5
2 files changed, 2 insertions, 5 deletions
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index e6f54e2..e34e776 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -926,6 +926,8 @@ public class SQLiteDatabase extends SQLiteClosable {
lock();
try {
closeClosable();
+ // finalize ALL statements queued up so far
+ closePendingStatements();
// close this database instance - regardless of its reference count value
onAllReferencesReleased();
} finally {
diff --git a/core/jni/android_database_SQLiteDatabase.cpp b/core/jni/android_database_SQLiteDatabase.cpp
index 3d2f54d..0c50c54 100644
--- a/core/jni/android_database_SQLiteDatabase.cpp
+++ b/core/jni/android_database_SQLiteDatabase.cpp
@@ -215,7 +215,6 @@ static void enableSqlProfiling(JNIEnv* env, jobject object, jstring databaseName
static void dbclose(JNIEnv* env, jobject object)
{
sqlite3 * handle = (sqlite3 *)env->GetIntField(object, offset_db_handle);
- sqlite3_stmt * pStmt;
if (handle != NULL) {
// release the memory associated with the traceFuncArg in enableSqlTracing function
@@ -228,10 +227,6 @@ static void dbclose(JNIEnv* env, jobject object)
if (traceFuncArg != NULL) {
free(traceFuncArg);
}
- // finalize all statements on this handle
- while ((pStmt = sqlite3_next_stmt(handle, 0)) != 0 ) {
- sqlite3_finalize(pStmt);
- }
LOGV("Closing database: handle=%p\n", handle);
int result = sqlite3_close(handle);
if (result == SQLITE_OK) {