From 21ca9ddb286c5c95059dbbcb9c24364e250a3d96 Mon Sep 17 00:00:00 2001 From: Filippo Carone Date: Tue, 8 Apr 2008 23:42:42 +0200 Subject: [PATCH] protect from null options param, and finalize added --- .../src/main/java/org/videolan/jvlc/VLM.java | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java b/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java index 4f4c4161c2..7763726fb4 100644 --- a/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java +++ b/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java @@ -30,7 +30,10 @@ import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; public class VLM { + private JVLC jvlc; + + private volatile boolean released; public VLM(JVLC jvlc) { @@ -45,7 +48,7 @@ public class VLM name, input, output, - options.length, + options == null ? 0 : options.length, options, enabled ? 1 : 0, loop ? 1 : 0, @@ -102,7 +105,7 @@ public class VLM name, input, output, - options.length, + options == null ? 0 : options.length, options, enabled ? 1 : 0, loop ? 1 : 0, @@ -114,13 +117,13 @@ public class VLM libvlc_exception_t exception = new libvlc_exception_t(); jvlc.getLibvlc().libvlc_vlm_play_media(jvlc.getInstance(), name, exception); } - + public void stopMedia(String name) { libvlc_exception_t exception = new libvlc_exception_t(); jvlc.getLibvlc().libvlc_vlm_stop_media(jvlc.getInstance(), name, exception); } - + public void pauseMedia(String name) { libvlc_exception_t exception = new libvlc_exception_t(); @@ -140,13 +143,29 @@ public class VLM } /** - * + * Releases native resources related to VLM. */ public void release() { + if (released) + { + return; + } + released = true; libvlc_exception_t exception = new libvlc_exception_t(); jvlc.getLibvlc().libvlc_vlm_release(jvlc.getInstance(), exception); } + /** + * {@inheritDoc} + */ + @Override + protected void finalize() throws Throwable + { + release(); + super.finalize(); + } + + } -- 2.39.2