Alexandre Julliard : ntdll: Abstract the support for comparing file identities.

Alexandre Julliard julliard at winehq.org
Fri Oct 23 10:18:58 CDT 2009


Module: wine
Branch: master
Commit: 639e07bead189626dc2b1e02fb30cd74d39c01bd
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=639e07bead189626dc2b1e02fb30cd74d39c01bd

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Oct 22 19:59:04 2009 +0200

ntdll: Abstract the support for comparing file identities.

---

 dlls/ntdll/directory.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
index ce9e81d..2e0aba0 100644
--- a/dlls/ntdll/directory.c
+++ b/dlls/ntdll/directory.c
@@ -139,11 +139,13 @@ static inline int getdents64( int fd, char *de, unsigned int size )
 
 #define MAX_IGNORED_FILES 4
 
-static struct
+struct file_identity
 {
     dev_t dev;
     ino_t ino;
-} ignored_files[MAX_IGNORED_FILES];
+};
+
+static struct file_identity ignored_files[MAX_IGNORED_FILES];
 static int ignored_files_count;
 
 static const unsigned int max_dir_info_size = FIELD_OFFSET( FILE_BOTH_DIR_INFORMATION, FileName[MAX_DIR_ENTRY_LEN] );
@@ -197,13 +199,17 @@ static inline void ignore_file( const char *name )
     }
 }
 
+static inline BOOL is_same_file( const struct file_identity *file, const struct stat *st )
+{
+    return st->st_dev == file->dev && st->st_ino == file->ino;
+}
+
 static inline BOOL is_ignored_file( const struct stat *st )
 {
     unsigned int i;
 
     for (i = 0; i < ignored_files_count; i++)
-        if (ignored_files[i].dev == st->st_dev && ignored_files[i].ino == st->st_ino)
-            return TRUE;
+        if (is_same_file( &ignored_files[i], st )) return TRUE;
     return FALSE;
 }
 




More information about the wine-cvs mailing list