diff options
-rw-r--r-- | core/java/android/database/sqlite/SQLiteDatabase.java | 2 | ||||
-rw-r--r-- | core/jni/android_database_SQLiteDatabase.cpp | 5 |
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) { |