* Get rid of unnecessary calls to stat().

This commit is contained in:
Justin Maggard 2009-01-30 22:42:15 +00:00
parent 53f764d020
commit 68ba24f255

View File

@ -528,11 +528,9 @@ sql_failed:
int int
filter_media(const struct dirent *d) filter_media(const struct dirent *d)
{ {
struct stat entry;
return ( (*d->d_name != '.') && return ( (*d->d_name != '.') &&
(stat(d->d_name, &entry) == 0) && ((d->d_type == DT_DIR) ||
(S_ISDIR(entry.st_mode) || ((d->d_type == DT_REG) &&
(S_ISREG(entry.st_mode) &&
(is_image(d->d_name) || (is_image(d->d_name) ||
is_audio(d->d_name) || is_audio(d->d_name) ||
is_video(d->d_name) is_video(d->d_name)
@ -544,7 +542,6 @@ void
ScanDirectory(const char * dir, const char * parent) ScanDirectory(const char * dir, const char * parent)
{ {
struct dirent **namelist; struct dirent **namelist;
struct stat entry;
int n, i; int n, i;
char parent_id[PATH_MAX]; char parent_id[PATH_MAX];
char full_path[PATH_MAX]; char full_path[PATH_MAX];
@ -577,15 +574,13 @@ ScanDirectory(const char * dir, const char * parent)
return; return;
} }
for (i=0; i < n; i++) { for (i=0; i < n; i++) {
if( stat(namelist[i]->d_name, &entry) == 0 )
{
name = NULL; name = NULL;
sprintf(full_path, "%s/%s", dir, namelist[i]->d_name); sprintf(full_path, "%s/%s", dir, namelist[i]->d_name);
if( index(namelist[i]->d_name, '&') ) if( index(namelist[i]->d_name, '&') )
{ {
name = modifyString(strdup(namelist[i]->d_name), "&", "&amp;amp;", 0); name = modifyString(strdup(namelist[i]->d_name), "&", "&amp;amp;", 0);
} }
if( S_ISDIR(entry.st_mode) ) if( namelist[i]->d_type == DT_DIR )
{ {
insert_directory(name?name:namelist[i]->d_name, full_path, BROWSEDIR_ID, (parent ? parent:""), i); insert_directory(name?name:namelist[i]->d_name, full_path, BROWSEDIR_ID, (parent ? parent:""), i);
sprintf(parent_id, "%s$%X", (parent ? parent:""), i); sprintf(parent_id, "%s$%X", (parent ? parent:""), i);
@ -595,7 +590,6 @@ ScanDirectory(const char * dir, const char * parent)
{ {
insert_file(name?name:namelist[i]->d_name, full_path, (parent ? parent:""), i); insert_file(name?name:namelist[i]->d_name, full_path, (parent ? parent:""), i);
} }
}
if( name ) if( name )
free(name); free(name);
free(namelist[i]); free(namelist[i]);