]> git.sesse.net Git - vlc/blobdiff - modules/gui/ncurses.c
Fix a memleak in ncurses interface.
[vlc] / modules / gui / ncurses.c
index 91c55c6cbd022c526a66efeb683b0c3eb69702cd..d93d0a7deefd672fa244674277b3f6b5129f4517 100644 (file)
@@ -246,6 +246,8 @@ static int Open( vlc_object_t *p_this )
 
     /* Allocate instance and initialize some members */
     p_sys = p_intf->p_sys = malloc( sizeof( intf_sys_t ) );
+    if( !p_sys )
+        return VLC_ENOMEM;
     p_sys->p_node = NULL;
     p_sys->p_input = NULL;
     p_sys->f_slider = 0.0;
@@ -677,7 +679,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
                 if( p_item->i_children == -1 )
                 {
                     playlist_DeleteFromInput( p_playlist,
-                                              p_item->p_input->i_id, true );
+                                              p_item->p_input->i_id, pl_Locked );
                 }
                 else
                 {
@@ -709,7 +711,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
                     while( p_parent->p_parent )
                         p_parent = p_parent->p_parent;
                     playlist_Control( p_playlist, PLAYLIST_VIEWPLAY,
-                                      true, p_parent, p_item );
+                                      pl_Unlocked, p_parent, p_item );
                 }
                 else if( p_sys->pp_plist[p_sys->i_box_plidx]->p_item->i_children
                         == 0 )
@@ -720,7 +722,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
                 else
                 {
                     p_sys->p_node = p_sys->pp_plist[p_sys->i_box_plidx]->p_item;
-                    playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, true,
+                    playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, pl_Unlocked,
                         p_sys->pp_plist[p_sys->i_box_plidx]->p_item, NULL );
                 }
                 b_box_plidx_follow = true;
@@ -1250,6 +1252,8 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
         default:
             ReturnFalse;
     }
+#undef ReturnFalse
+#undef ReturnTrue
 }
 
 static void ManageSlider( intf_thread_t *p_intf )
@@ -1431,7 +1435,6 @@ static void mvnprintw( int y, int x, int w, const char *p_fmt, ... )
         mvhline( y, x + i_width, ' ', w - i_width );
     }
 
-    free( p_buf );
 #else
     if( i_len > w )
     {
@@ -1462,6 +1465,7 @@ static void mvnprintw( int y, int x, int w, const char *p_fmt, ... )
         mvhline( y, x + i_len, ' ', w - i_len );
     }
 #endif
+    free( p_buf );
 }
 static void MainBoxWrite( intf_thread_t *p_intf, int l, int x, const char *p_fmt, ... )
 {