summaryrefslogtreecommitdiff
path: root/apps/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tree.c')
-rw-r--r--apps/tree.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/apps/tree.c b/apps/tree.c
index a034fd0545..6622e1c4c2 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -314,6 +314,18 @@ struct tree_context* tree_get_context(void)
314 return &tc; 314 return &tc;
315} 315}
316 316
317void tree_lock_cache(struct tree_context *t)
318{
319 core_pin(t->cache.name_buffer_handle);
320 core_pin(t->cache.entries_handle);
321}
322
323void tree_unlock_cache(struct tree_context *t)
324{
325 core_unpin(t->cache.name_buffer_handle);
326 core_unpin(t->cache.entries_handle);
327}
328
317/* 329/*
318 * Returns the position of a given file in the current directory 330 * Returns the position of a given file in the current directory
319 * returns -1 if not found 331 * returns -1 if not found
@@ -1020,9 +1032,6 @@ int rockbox_browse(struct browse_context *browse)
1020static int move_callback(int handle, void* current, void* new) 1032static int move_callback(int handle, void* current, void* new)
1021{ 1033{
1022 struct tree_cache* cache = &tc.cache; 1034 struct tree_cache* cache = &tc.cache;
1023 if (cache->lock_count > 0)
1024 return BUFLIB_CB_CANNOT_MOVE;
1025
1026 ptrdiff_t diff = new - current; 1035 ptrdiff_t diff = new - current;
1027 /* FIX_PTR makes sure to not accidentally update static allocations */ 1036 /* FIX_PTR makes sure to not accidentally update static allocations */
1028#define FIX_PTR(x) \ 1037#define FIX_PTR(x) \