tracker r2783 - in trunk: . src/tracker-extract



Author: ifrade
Date: Mon Jan 12 12:10:14 2009
New Revision: 2783
URL: http://svn.gnome.org/viewvc/tracker?rev=2783&view=rev

Log:
Avoid crashing in the indexer when the output of totem-plparser is not SUCCESS

Modified:
   trunk/ChangeLog
   trunk/src/tracker-extract/tracker-extract-playlist.c

Modified: trunk/src/tracker-extract/tracker-extract-playlist.c
==============================================================================
--- trunk/src/tracker-extract/tracker-extract-playlist.c	(original)
+++ trunk/src/tracker-extract/tracker-extract-playlist.c	Mon Jan 12 12:10:14 2009
@@ -86,9 +86,10 @@
 extract_playlist (const gchar *filename,
 		  GHashTable  *metadata)
 {
-	TotemPlParser *pl;
-	PlaylistMetadata data = {0, 0};
-	gchar *proper_filename;
+	TotemPlParser       *pl;
+	TotemPlParserResult  result;
+	PlaylistMetadata     data = {0, 0};
+	gchar               *proper_filename;
 
 	pl = totem_pl_parser_new ();
 
@@ -103,10 +104,20 @@
 		proper_filename = g_strconcat ("file://", filename, NULL);
 	}
 
-        if (totem_pl_parser_parse (pl, 
-                                   proper_filename, 
-                                   FALSE) != TOTEM_PL_PARSER_RESULT_SUCCESS)
-                g_error ("Playlist parsing failed.");
+        result = totem_pl_parser_parse (pl, proper_filename, FALSE);
+
+        switch (result) {
+        case TOTEM_PL_PARSER_RESULT_SUCCESS:
+                break;
+        case TOTEM_PL_PARSER_RESULT_IGNORED:
+        case TOTEM_PL_PARSER_RESULT_ERROR:
+        case TOTEM_PL_PARSER_RESULT_UNHANDLED:
+		data.total_time = 0;
+		data.track_counter = 0;
+                break;
+        default:
+                g_warning ("Undefined result in totem-plparser");
+        }
 
 	g_hash_table_insert (metadata, 
 			     g_strdup (PLAYLIST_PROPERTY_DURATION), 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]