From 539e6b9a6b3de739db3a8f992eba666bde2db370 Mon Sep 17 00:00:00 2001 From: hovoere Date: Fri, 6 Sep 2013 10:28:06 +0200 Subject: [PATCH 1/2] Added finalize to TableQuery --- .gitignore | 3 ++- .../src/main/java/com/tightdb/TableQuery.java | 13 +++++++++++++ tightdb_jni/src/com_tightdb_TableQuery.cpp | 5 +++++ tightdb_jni/src/com_tightdb_TableQuery.h | 8 ++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f270c1ab43..d96ce8d434 100644 --- a/.gitignore +++ b/.gitignore @@ -72,7 +72,8 @@ _ReSharper*/ /test_output .DS_Store - +.idea +*.iml *.lock diff --git a/tightdb-java-core/src/main/java/com/tightdb/TableQuery.java b/tightdb-java-core/src/main/java/com/tightdb/TableQuery.java index 1b0dffd5e2..151343e76d 100644 --- a/tightdb-java-core/src/main/java/com/tightdb/TableQuery.java +++ b/tightdb-java-core/src/main/java/com/tightdb/TableQuery.java @@ -11,6 +11,19 @@ public TableQuery(long nativeQueryPtr, boolean immutable){ this.nativePtr = nativeQueryPtr; } + public void finalize() { + close(); + } + + private void close() { + if (nativePtr == 0) { + return; + } + nativeClose(nativePtr); + nativePtr = 0; + } + protected native void nativeClose(long nativeQueryPtr); + // Query TableView public TableQuery tableview(TableView tv){ nativeTableview(nativePtr, tv.nativePtr); diff --git a/tightdb_jni/src/com_tightdb_TableQuery.cpp b/tightdb_jni/src/com_tightdb_TableQuery.cpp index 76b720f791..ed9311da81 100644 --- a/tightdb_jni/src/com_tightdb_TableQuery.cpp +++ b/tightdb_jni/src/com_tightdb_TableQuery.cpp @@ -8,6 +8,11 @@ inline Table* Ref2Ptr(TableRef tableref) return &*tableref; } +JNIEXPORT void JNICALL Java_com_tightdb_TableQuery_nativeClose(JNIEnv * env, jobject, jlong nativeQueryPtr) { + Query* query = Q(nativeQueryPtr); + delete query; +} + // Integer JNIEXPORT void JNICALL Java_com_tightdb_TableQuery_nativeEqual__JJJ( diff --git a/tightdb_jni/src/com_tightdb_TableQuery.h b/tightdb_jni/src/com_tightdb_TableQuery.h index 381f4600f9..85cfdbbf44 100644 --- a/tightdb_jni/src/com_tightdb_TableQuery.h +++ b/tightdb_jni/src/com_tightdb_TableQuery.h @@ -7,6 +7,14 @@ #ifdef __cplusplus extern "C" { #endif +/* + * Class: com_tightdb_TableQuery + * Method: nativeClose + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_com_tightdb_TableQuery_nativeClose + (JNIEnv *, jobject, jlong); + /* * Class: com_tightdb_TableQuery * Method: nativeTableview From c1e97c4dfc565367cf40b1bb624e0d39600fc468 Mon Sep 17 00:00:00 2001 From: hovoere Date: Fri, 6 Sep 2013 10:30:36 +0200 Subject: [PATCH 2/2] Changed tab to spaces --- tightdb_jni/src/com_tightdb_TableQuery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tightdb_jni/src/com_tightdb_TableQuery.cpp b/tightdb_jni/src/com_tightdb_TableQuery.cpp index ed9311da81..ac6f4e8ce0 100644 --- a/tightdb_jni/src/com_tightdb_TableQuery.cpp +++ b/tightdb_jni/src/com_tightdb_TableQuery.cpp @@ -9,7 +9,7 @@ inline Table* Ref2Ptr(TableRef tableref) } JNIEXPORT void JNICALL Java_com_tightdb_TableQuery_nativeClose(JNIEnv * env, jobject, jlong nativeQueryPtr) { - Query* query = Q(nativeQueryPtr); + Query* query = Q(nativeQueryPtr); delete query; }