summaryrefslogtreecommitdiff
path: root/plugins/m3u/m3u.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/m3u/m3u.c')
-rw-r--r--plugins/m3u/m3u.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/m3u/m3u.c b/plugins/m3u/m3u.c
index 4e5afe83..c91d70c0 100644
--- a/plugins/m3u/m3u.c
+++ b/plugins/m3u/m3u.c
@@ -101,6 +101,9 @@ load_m3u (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_pla
after = it;
}
if (pabort && *pabort) {
+ if (after) {
+ deadbeef->pl_item_ref (after);
+ }
deadbeef->pl_unlock ();
free (buffer);
return after;
@@ -110,6 +113,9 @@ load_m3u (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_pla
break;
}
}
+ if (after) {
+ deadbeef->pl_item_ref (after);
+ }
deadbeef->pl_unlock ();
trace ("leave pl_insert_m3u\n");
free (buffer);
@@ -206,6 +212,9 @@ load_pls (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_pla
after = it;
}
if (pabort && *pabort) {
+ if (after) {
+ deadbeef->pl_item_ref (after);
+ }
deadbeef->pl_unlock ();
free (buffer);
return after;
@@ -244,6 +253,9 @@ load_pls (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_pla
after = it;
}
if (pabort && *pabort) {
+ if (after) {
+ deadbeef->pl_item_ref (after);
+ }
deadbeef->pl_unlock ();
free (buffer);
return after;
@@ -281,6 +293,9 @@ load_pls (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_pla
after = it;
}
if (pabort && *pabort) {
+ if (after) {
+ deadbeef->pl_item_ref (after);
+ }
deadbeef->pl_unlock ();
free (buffer);
return after;
@@ -323,6 +338,9 @@ load_pls (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_pla
after = it;
}
}
+ if (after) {
+ deadbeef->pl_item_ref (after);
+ }
deadbeef->pl_unlock ();
free (buffer);
return after;