Mercurial > audlegacy
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 */ |