better args handling
authorFilippo Carone <littlejohn@videolan.org>
Thu, 9 Nov 2006 19:22:26 +0000 (19:22 +0000)
committerFilippo Carone <littlejohn@videolan.org>
Thu, 9 Nov 2006 19:22:26 +0000 (19:22 +0000)
org/videolan/jvlc/JVLC.java
src/core-jni.cc

index 71ed3ff..18c848e 100644 (file)
@@ -72,7 +72,10 @@ public class JVLC implements Runnable {
     }
     
     public JVLC(String[] args) {
-        _instance      = createInstance( args );
+       String[] myargs = new String[args.length + 1];
+       myargs[0] = "jvlc";
+       System.arraycopy( args, 0, myargs, 1, args.length );
+        _instance      = createInstance( myargs );
         playlist       = new Playlist  ( _instance );
         video          = new Video             ( _instance );
         audio          = new Audio             ( _instance );
index 0e6db07..a622eec 100644 (file)
@@ -56,11 +56,8 @@ JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance (JNIEnv *env,
     argc = (int) env->GetArrayLength((jarray) args) + 1;
     argv = (const char **) malloc(argc * sizeof(char*));
 
-    argv[0] = "vlc";
-    
-    
-    for (int i = 0; i < argc - 1; i++) {
-        argv[i+1] = env->GetStringUTFChars((jstring) env->GetObjectArrayElement(args, i),
+    for (int i = 0; i < argc; i++) {
+        argv[i] = env->GetStringUTFChars((jstring) env->GetObjectArrayElement(args, i),
                                          0
         );
     }
@@ -68,8 +65,7 @@ JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance (JNIEnv *env,
     res = (long) libvlc_new(argc, (char**) argv, exception );
 
     free( exception );
-    free( argv );
-
     return res;
 
 }