diff options
author | Andargor <dejan@lofts.net> | 2016-03-03 03:41:02 +0300 |
---|---|---|
committer | Andargor <dejan@lofts.net> | 2016-03-03 03:41:02 +0300 |
commit | 937835fa91c1171151efa50c825b437c182b8f48 (patch) | |
tree | 147a86917661261695b5d60587f650e79e7eb974 | |
parent | a325a660dd2dd82f0ee7df6d39a1ac777afd5d7c (diff) |
Second proposal for readdir_r with entry allocation in tinydir_dir
-rwxr-xr-x | tinydir.h | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -98,6 +98,7 @@ typedef struct #else DIR *_d; struct dirent *_e; + struct dirent _ep[_TINYDIR_PATH_MAX]; #endif } tinydir_dir; @@ -133,7 +134,6 @@ int tinydir_open(tinydir_dir *dir, const char *path) { #ifndef _MSC_VER int error; - struct dirent entry; #endif if (dir == NULL || path == NULL || strlen(path) == 0) @@ -174,7 +174,7 @@ int tinydir_open(tinydir_dir *dir, const char *path) /* read first file */ dir->has_next = 1; #ifndef _MSC_VER - error = readdir_r(dir->_d, &entry, &dir->_e); + error = readdir_r(dir->_d, dir->_ep, &dir->_e); if (error != 0) return -1; if (dir->_e == NULL) @@ -291,8 +291,6 @@ int tinydir_next(tinydir_dir *dir) { #ifndef _MSC_VER int error; - struct dirent entry; - /*struct dirent *result;*/ #endif if (dir == NULL) @@ -309,7 +307,7 @@ int tinydir_next(tinydir_dir *dir) #ifdef _MSC_VER if (FindNextFileA(dir->_h, &dir->_f) == 0) #else - error = readdir_r(dir->_d, &entry, &dir->_e); + error = readdir_r(dir->_d, dir->_ep, &dir->_e); if (error != 0) return -1; if (dir->_e == NULL) |