comparison src/audacious/playlist.c @ 4105:0d300e0b0001

Fixes memory leak in playlist_entry_get_info() due not freeing probe result (Bugzilla #38)
author Jussi Judin <jjudin+audacious@iki.fi>
date Mon, 24 Dec 2007 23:05:10 -0600
parents e1ecacef3789
children d5d4590cb7d2
comparison
equal deleted inserted replaced
4101:97efe5d31594 4105:0d300e0b0001
225 entry->decoder = pr->ip; 225 entry->decoder = pr->ip;
226 } 226 }
227 227
228 /* renew tuple if file mtime is newer than tuple mtime. */ 228 /* renew tuple if file mtime is newer than tuple mtime. */
229 if (entry->tuple){ 229 if (entry->tuple){
230 if (tuple_get_int(entry->tuple, FIELD_MTIME, NULL) == modtime) 230 if (tuple_get_int(entry->tuple, FIELD_MTIME, NULL) == modtime) {
231 g_free(pr);
231 return TRUE; 232 return TRUE;
232 else { 233 } else {
233 mowgli_object_unref(entry->tuple); 234 mowgli_object_unref(entry->tuple);
234 entry->tuple = NULL; 235 entry->tuple = NULL;
235 } 236 }
236 } 237 }
237 238
238 if (pr != NULL && pr->tuple != NULL) 239 if (pr != NULL && pr->tuple != NULL)
239 tuple = pr->tuple; 240 tuple = pr->tuple;
240 else if (entry->decoder != NULL && entry->decoder->get_song_tuple != NULL) 241 else if (entry->decoder != NULL && entry->decoder->get_song_tuple != NULL)
241 tuple = entry->decoder->get_song_tuple(entry->filename); 242 tuple = entry->decoder->get_song_tuple(entry->filename);
242 243
243 if (tuple == NULL) 244 if (tuple == NULL) {
245 g_free(pr);
244 return FALSE; 246 return FALSE;
247 }
245 248
246 /* attach mtime */ 249 /* attach mtime */
247 tuple_associate_int(tuple, FIELD_MTIME, NULL, modtime); 250 tuple_associate_int(tuple, FIELD_MTIME, NULL, modtime);
248 251
249 /* entry is still around */ 252 /* entry is still around */