summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2022-11-14 04:38:30 +0100
committerChristian Soffke <christian.soffke@gmail.com>2022-11-14 05:35:28 +0100
commit97936e066144188a3121f1a72fdfbdb1fb5d82e3 (patch)
treeb5312cde94905d8a9d912c6b3ecbf261cba14ef3
parenta634557a881b59b8be1dc156f9822c6d20bd8741 (diff)
downloadrockbox-97936e066144188a3121f1a72fdfbdb1fb5d82e3.tar.gz
rockbox-97936e066144188a3121f1a72fdfbdb1fb5d82e3.zip
Database: Fix problematic dirlevel reset
Dirlevel is restored in this error case without exiting the previously entered tables. Change-Id: I516c3ed635bc5c49dcf551223258215f79bff046
-rw-r--r--apps/tagtree.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 633ad7ecbc..e836aeb633 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -2135,7 +2135,9 @@ bool tagtree_insert_selection_playlist(int position, bool queue)
if (newtable != PLAYTRACK)
{
logf("newtable: %d !!", newtable);
- tc->dirlevel = dirlevel;
+ while (tc->dirlevel > dirlevel)
+ tagtree_exit(tc);
+ tagtree_load(tc);
return false;
}
}