diff options
Diffstat (limited to 'apps/tree.c')
-rw-r--r-- | apps/tree.c | 15 |
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 | ||
317 | void 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 | |||
323 | void 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) | |||
1020 | static int move_callback(int handle, void* current, void* new) | 1032 | static 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) \ |