diff options
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/filetree.c | 2 | ||||
| -rw-r--r-- | apps/tagtree.c | 2 | ||||
| -rw-r--r-- | apps/tree.c | 15 | ||||
| -rw-r--r-- | apps/tree.h | 2 |
4 files changed, 9 insertions, 12 deletions
diff --git a/apps/filetree.c b/apps/filetree.c index 96fcc8a..eaaee96 100644 --- a/apps/filetree.c +++ b/apps/filetree.c @@ -285,7 +285,7 @@ int ft_load(struct tree_context* c, const char* tempdir) c->dirsindir = 0; c->dirfull = false; - for ( i=0; i < global_settings.max_files_in_dir; i++ ) { + for ( i=0; i < c->dircache_count; i++ ) { int len; struct dirent *entry = readdir(dir); struct dirinfo info; diff --git a/apps/tagtree.c b/apps/tagtree.c index 575ab22..2a2e2b8 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -1288,7 +1288,7 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init) dptr++; current_entry_count++; - if (current_entry_count >= global_settings.max_files_in_dir) + if (current_entry_count >= c->dircache_count) { logf("chunk mode #3: %d", current_entry_count); c->dirfull = true; diff --git a/apps/tree.c b/apps/tree.c index d87a93e..44c4b92 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -95,7 +95,6 @@ static char lastdir[MAX_PATH]; #ifdef HAVE_TAGCACHE static int lasttable, lastextra, lastfirstpos; #endif -static int max_files = 0; static bool reload_dir = false; @@ -391,7 +390,7 @@ static int update_dir(void) #ifdef HAVE_TAGCACHE !id3db && #endif - (tc.dirfull || tc.filesindir == global_settings.max_files_in_dir) ) + (tc.dirfull || tc.filesindir == tc.dircache_count) ) { splash(HZ, ID2P(LANG_SHOWDIR_BUFFER_FULL)); } @@ -1005,20 +1004,18 @@ int rockbox_browse(struct browse_context *browse) void tree_mem_init(void) { - /* We copy the settings value in case it is changed by the user. We can't - use it until the next reboot. */ - max_files = global_settings.max_files_in_dir; - /* initialize tree context struct */ memset(&tc, 0, sizeof(tc)); tc.dirfilter = &global_settings.dirfilter; tc.sort_dir = global_settings.sort_dir; - tc.name_buffer_size = AVERAGE_FILENAME_LENGTH * max_files; + tc.name_buffer_size = AVERAGE_FILENAME_LENGTH * + global_settings.max_files_in_dir; tc.name_buffer = buffer_alloc(tc.name_buffer_size); - tc.dircache_size = max_files * sizeof(struct entry); - tc.dircache = buffer_alloc(tc.dircache_size); + tc.dircache_count = global_settings.max_files_in_dir; + tc.dircache = buffer_alloc(global_settings.max_files_in_dir * + sizeof(struct entry)); tree_get_filetypes(&filetypes, &filetypes_count); } diff --git a/apps/tree.h b/apps/tree.h index 7275c9a..104d6c4 100644 --- a/apps/tree.h +++ b/apps/tree.h @@ -84,7 +84,7 @@ struct tree_context { * contains all files and dirs in the current * dir (with filters applied) */ void* dircache; - int dircache_size; + int dircache_count; /* Number of entries in dircache */ char* name_buffer; int name_buffer_size; int dentry_size; |