]> git.sesse.net Git - vlc/commitdiff
- Undo [14667]
authorRémi Denis-Courmont <rem@videolan.org>
Tue, 7 Mar 2006 20:06:53 +0000 (20:06 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Tue, 7 Mar 2006 20:06:53 +0000 (20:06 +0000)
 * fix memleak
 * remove unused variable (psz_local always NULL...)
 * remove free(NULL)
 * remove expansion-unsafe wxDnDLocaleFree() macro variant
- Actually fix [14633] flawed logic

modules/gui/wxwidgets/dialogs/playlist.cpp
modules/gui/wxwidgets/interface.cpp
modules/gui/wxwidgets/wxwidgets.hpp

index 612c3e7d70d077f1ccf6e43aad500d687ff54ffa..c4102e84169f729dea8305762fb289e0800b90ff 100644 (file)
@@ -1292,13 +1292,12 @@ bool PlaylistFileDropTarget::OnDropFiles( wxCoord x, wxCoord y,
     /* Put the items in the playlist node */
     for( size_t i = 0; i < filenames.GetCount(); i++ )
     {
-        char *psz_local = NULL;
-        const char *psz_utf8 = wxDnDFromLocale( filenames[i], psz_local );
+        const char *psz_utf8 = wxDnDFromLocale( filenames[i] );
         playlist_item_t *p_item =
             playlist_ItemNew( p->p_playlist, psz_utf8, psz_utf8 );
         playlist_NodeAddItem( p->p_playlist, p_item, p->i_current_view,
                               p_dest, PLAYLIST_PREPARSE, i_pos );
-        wxDnDLocaleFree( psz_utf8, psz_local );
+        wxDnDLocaleFree( psz_utf8 );
     }
 
     /* FIXME: having this Rebuild() is dirty */
index 1f4338378408fa1a24668acbb7d15ccaf13fe549..1237702c2750b617e4db6a4e8b37c98b7f7dbfd0 100644 (file)
@@ -1261,14 +1261,13 @@ bool DragAndDrop::OnDropFiles( wxCoord, wxCoord,
 
     for( size_t i = 0; i < filenames.GetCount(); i++ )
     {
-        char *psz_local = NULL;
-        const char *psz_utf8 = wxDnDFromLocale( filenames[i], psz_local );
+        char *psz_utf8 = wxDnDFromLocale( filenames[i] );
 
         playlist_Add( p_playlist, psz_utf8, psz_utf8,
                       PLAYLIST_APPEND | ((i | b_enqueue) ? 0 : PLAYLIST_GO),
                       PLAYLIST_END );
 
-        wxDnDLocaleFree( psz_utf8, psz_local );
+        wxDnDLocaleFree( psz_utf8 );
     }
 
     vlc_object_release( p_playlist );
index d35e644553fef4e2f71b34a67ba70098f14eb1a8..bd69b13acebb87dcdc478268b58956bae99bb226 100644 (file)
@@ -98,7 +98,7 @@ DECLARE_LOCAL_EVENT_TYPE( wxEVT_INTF, 1 );
 
 /* From Locale functions to use for File Drop targets ... go figure */
 #ifdef wxUSE_UNICODE
-inline const char *wxDnDFromLocale( const wxChar *stupid, char *psz_local )
+static inline char *wxDnDFromLocale( const wxChar *stupid )
 {
     /*
      * FIXME: this is yet another awful and ugly bug-to-bug work-around
@@ -120,21 +120,19 @@ inline const char *wxDnDFromLocale( const wxChar *stupid, char *psz_local )
     for (braindead = stupid; *braindead; braindead++);
 
     size_t i = (braindead - stupid);
-    psz_local = (char *)malloc( i + 1 );
+    char *psz_local = (char *)malloc( i + 1 );
     do
         psz_local[i] = (char)stupid[i];
     while (i--);
 
-    const char *psz_utf8 = FromLocale( psz_local );
+    char *psz_utf8 = FromLocaleDup( psz_local );
+    free( psz_local );
     return psz_utf8;
 }
+#   define wxDnDLocaleFree( string ) free( string )
 #else
-#   define wxDnDFromLocale( string, a ) wxFromLocale( string )
-#endif
-#ifdef wxUSE_UNICODE
-#   define wxDnDLocaleFree( string, a ) LocaleFree( string ); free( a )
-#else
-#   define wxDnDLocaleFree( string, a ) wxLocaleFree( string )
+#   define wxDnDFromLocale( string ) wxFromLocale( string )
+#   define wxDnDLocaleFree( string ) wxLocaleFree( string )
 #endif
 
 #define WRAPCOUNT 80