]> git.sesse.net Git - vlc/blobdiff - src/winvlc.c
Fix xosd memleaks.
[vlc] / src / winvlc.c
index e7aae935cdacd202f960ab744a873b6244d8df07..18c1b13b1234e3989db029fc72b63df17ed5ba22 100644 (file)
@@ -91,9 +91,9 @@ static int parse_cmdline (char *line, char ***argvp)
  * wWinMain: parse command line, start interface and spawn threads.
  *****************************************************************************/
 int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
-                    LPWSTR lpCmdLine, int nCmdShow )
+                     LPWSTR lpCmdLine, int nCmdShow )
 {
-    char **argv, psz_cmdline[wcslen(lpCmdLine) * 4];
+    char **argv, psz_cmdline[wcslen(lpCmdLine) * 4 + 1];
     int argc, ret;
 
     (void)hInstance; (void)hPrevInstance; (void)nCmdShow;
@@ -103,14 +103,16 @@ int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
 
     argc = parse_cmdline (psz_cmdline, &argv);
 
-    libvlc_exception_t ex;
+    libvlc_exception_t ex, dummy;
     libvlc_exception_init (&ex);
+    libvlc_exception_init (&dummy);
 
     /* Initialize libvlc */
     libvlc_instance_t *vlc = libvlc_new (argc, (const char **)argv, &ex);
     if (vlc != NULL)
     {
         libvlc_add_intf (vlc, NULL, &ex);
+        libvlc_playlist_play (vlc, -1, 0, NULL, &dummy);
         libvlc_wait (vlc);
         libvlc_release (vlc);
     }
@@ -118,6 +120,7 @@ int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
 
     ret = libvlc_exception_raised (&ex);
     libvlc_exception_clear (&ex);
+    libvlc_exception_clear (&dummy);
     return ret;
 }
 
@@ -126,8 +129,8 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                     LPSTR args, int nCmdShow)
 {
     /* This makes little sense, but at least it links properly */
-    wchar_t lpCmdLine[strlen(args) * 3];
-    MultiByteToWideChar( CP_ACP, 0, args, -1, lpCmdLine, sizeof(lpCmdLine) );
+    wchar_t lpCmdLine[(strlen (args) + 1) * 3];
+    MultiByteToWideChar (CP_ACP, 0, args, -1, lpCmdLine, sizeof (lpCmdLine));
     return wWinMain (hInstance, hPrevInstance, lpCmdLine, nCmdShow);
 }
 #endif