Fixed a problem with dircache where filetree modified dircache
structures directly. Moved #ifdef directly to SOURCES instead of dircache.c to decide whether to compile the cache or not. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7599 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
1a4083d828
commit
b76e8c09fa
3 changed files with 14 additions and 6 deletions
|
@ -11,7 +11,9 @@ common/ctype.c
|
|||
common/dir.c
|
||||
common/file.c
|
||||
#endif
|
||||
#ifdef HAVE_DIRCACHE
|
||||
common/dircache.c
|
||||
#endif
|
||||
common/disk.c
|
||||
common/errno.c
|
||||
common/memcmp.c
|
||||
|
|
|
@ -24,8 +24,6 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef HAVE_DIRCACHE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
@ -775,8 +773,18 @@ struct dircache_entry* readdir_cached(DIRCACHED* dir)
|
|||
|
||||
dir->entry = ce->next;
|
||||
|
||||
strncpy(dir->secondary_entry.d_name, ce->d_name, MAX_PATH-1);
|
||||
/* Can't do `dir->secondary_entry = *ce`
|
||||
because that modifies the d_name pointer. */
|
||||
dir->secondary_entry.size = ce->size;
|
||||
dir->secondary_entry.startcluster = ce->startcluster;
|
||||
dir->secondary_entry.attribute = ce->attribute;
|
||||
dir->secondary_entry.wrttime = ce->wrttime;
|
||||
dir->secondary_entry.wrtdate = ce->wrtdate;
|
||||
dir->secondary_entry.next = NULL;
|
||||
|
||||
//logf("-> %s", ce->name);
|
||||
return ce;
|
||||
return &dir->secondary_entry;
|
||||
}
|
||||
|
||||
int closedir_cached(DIRCACHED* dir)
|
||||
|
@ -788,5 +796,3 @@ int closedir_cached(DIRCACHED* dir)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#endif /* HAVE_DIRCACHE */
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
/* Enable the directory cache if we have plenty of RAM. */
|
||||
/* Cache is just temporarily disabled for simulator build.
|
||||
* Do the small fix in dircache.c to enable this. */
|
||||
#if MEM > 8 && !defined(BOOTLOADER) && !defined(SIMULATOR)
|
||||
#if (MEMORYSIZE > 8 || MEM > 8) && !defined(BOOTLOADER) && !defined(SIMULATOR)
|
||||
#define HAVE_DIRCACHE 1
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue