Skip to content

Commit 150af85

Browse files
committed
All java class wrapping a native object must call dispose at destruction.
1 parent 1dd170b commit 150af85

14 files changed

Lines changed: 49 additions & 12 deletions

lib/src/main/java/org/kiwix/libkiwix/Server.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ public Server(Library library)
4545
setNativeServer(library);
4646
}
4747

48+
@Override
49+
protected void finalize() { dispose(); }
50+
51+
4852
private native void setNativeServer(Library library);
4953
private native void dispose();
5054
private long nativeHandle;

lib/src/main/java/org/kiwix/libzim/Archive.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ public Archive(FileDescriptor fd, long offset, long size)
104104
private native void setNativeArchiveByFD(FileDescriptor fd);
105105
private native void setNativeArchiveEmbedded(FileDescriptor fd, long offset, long size);
106106

107+
@Override
108+
protected void finalize() { dispose(); }
109+
107110

108111
///--------- The wrapper thing
109112
// To delete our native wrapper

lib/src/main/java/org/kiwix/libzim/Blob.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ public class Blob
2626
public native String getData();
2727
public native long size();
2828

29-
protected void finalize() {
30-
dispose();
31-
}
29+
30+
@Override
31+
protected void finalize() { dispose(); }
32+
3233

3334
///--------- The wrapper thing
3435
// To delete our native wrapper

lib/src/main/java/org/kiwix/libzim/Entry.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ public class Entry
3131
public native Item getRedirect();
3232
public native Entry getRedirectEntry();
3333

34-
protected void finalize() {
35-
dispose();
36-
}
34+
@Override
35+
protected void finalize() { dispose(); }
3736

3837
///--------- The wrapper thing
3938
// To delete our native wrapper

lib/src/main/java/org/kiwix/libzim/EntryIterator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ private EntryIterator(int order) {
2929
public native boolean hasNext();
3030
public native Entry next();
3131

32+
@Override
33+
protected void finalize() { dispose(); }
34+
35+
3236
///--------- The wrapper thing
3337
// To delete our native wrapper
3438
public native void dispose();

lib/src/main/java/org/kiwix/libzim/Item.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ public class Item
3030
public native Blob getData();
3131
public native long getSize();
3232

33-
protected void finalize() {
34-
dispose();
35-
}
33+
@Override
34+
protected void finalize() { dispose(); }
3635

3736
///--------- The wrapper thing
3837
// To delete our native wrapper

lib/src/main/java/org/kiwix/libzim/Query.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public Query(String query) {
2828
public native Query setQuery(String query);
2929
public native Query setGeorange(float latitude, float longitute, float distance);
3030

31+
@Override
32+
protected void finalize() { dispose(); }
33+
34+
3135
///--------- The wrapper thing
3236
// To delete our native wrapper
3337
public native void dispose();

lib/src/main/java/org/kiwix/libzim/Search.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ public class Search
2626
public native SearchIterator getResults(int start, int maxResults);
2727
public native long getEstimatedMatches();
2828

29+
@Override
30+
protected void finalize() { dispose(); }
31+
32+
2933
///--------- The wrapper thing
3034
// To delete our native wrapper
3135
public native void dispose();

lib/src/main/java/org/kiwix/libzim/SearchIterator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public class SearchIterator implements Iterator<Entry>
3636
public native boolean hasNext();
3737
public native Entry next();
3838

39+
40+
@Override
41+
protected void finalize() { dispose(); }
42+
3943
///--------- The wrapper thing
4044
// To delete our native wrapper
4145
public native void dispose();

lib/src/main/java/org/kiwix/libzim/Searcher.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public Searcher(Archive[] archives) throws Exception
5151
private native void setNativeSearcher(Archive archive);
5252
private native void setNativeSearcherMulti(Archive[] archives);
5353

54+
@Override
55+
protected void finalize() { dispose(); }
56+
57+
5458
///--------- The wrapper thing
5559
// To delete our native wrapper
5660
public native void dispose();

0 commit comments

Comments
 (0)