X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bindings%2Fjava%2Fcore%2Fsrc%2Fmain%2Fjava%2Forg%2Fvideolan%2Fjvlc%2FMediaList.java;h=834c4bd9a3496c246a1f010d13e9622dbafeb096;hb=de94406f0097da88e57f9a4f36acdbf50580a312;hp=c7dcbd03b2369e855634e0ab17e0d5a482c09325;hpb=1518df76c45a9269d8cd6d4f43d8cf6ff261a198;p=vlc diff --git a/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java b/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java index c7dcbd03b2..834c4bd9a3 100644 --- a/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java +++ b/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java @@ -26,7 +26,6 @@ package org.videolan.jvlc; import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager; @@ -42,10 +41,12 @@ public class MediaList private final LibVlcMediaList instance; - private final LibVlcEventManager eventManager; - private List items = new ArrayList(); + private LibVlcEventManager eventManager; + + private volatile boolean released; + public MediaList(JVLC jvlc) { this.jvlc = jvlc; @@ -188,7 +189,7 @@ public class MediaList @Override protected void finalize() throws Throwable { - jvlc.getLibvlc().libvlc_media_list_release(instance); + release(); super.finalize(); } @@ -201,6 +202,20 @@ public class MediaList return instance; } + /** + * + */ + public void release() + { + if (released) + { + return; + } + released = true; + + jvlc.getLibvlc().libvlc_media_list_release(instance); + } + }