Browse Source

uv: apply floating patch 2f54947b

v0.11.14-release
Fedor Indutny 10 years ago
parent
commit
7fd35e6ea4
  1. 7
      deps/uv/src/unix/fs.c
  2. 8
      deps/uv/test/test-fs.c

7
deps/uv/src/unix/fs.c

@ -312,14 +312,15 @@ static ssize_t uv__fs_readdir(uv_fs_t* req) {
dents = NULL; dents = NULL;
n = scandir(req->path, &dents, uv__fs_readdir_filter, alphasort); n = scandir(req->path, &dents, uv__fs_readdir_filter, alphasort);
/* NOTE: We will use nbufs as an index field */
req->nbufs = 0;
if (n == 0) if (n == 0)
goto out; /* osx still needs to deallocate some memory */ goto out; /* osx still needs to deallocate some memory */
else if (n == -1) else if (n == -1)
return n; return n;
/* NOTE: We will use nbufs as an index field */
req->ptr = dents; req->ptr = dents;
req->nbufs = 0;
return n; return n;
@ -334,6 +335,8 @@ out:
} }
errno = saved_errno; errno = saved_errno;
req->ptr = NULL;
return n; return n;
} }

8
deps/uv/test/test-fs.c

@ -436,10 +436,13 @@ static void readdir_cb(uv_fs_t* req) {
static void empty_readdir_cb(uv_fs_t* req) { static void empty_readdir_cb(uv_fs_t* req) {
uv_dirent_t dent;
ASSERT(req == &readdir_req); ASSERT(req == &readdir_req);
ASSERT(req->fs_type == UV_FS_READDIR); ASSERT(req->fs_type == UV_FS_READDIR);
ASSERT(req->result == 0); ASSERT(req->result == 0);
ASSERT(req->ptr == NULL); ASSERT(req->ptr == NULL);
ASSERT(UV_EOF == uv_fs_readdir_next(req, &dent));
uv_fs_req_cleanup(req); uv_fs_req_cleanup(req);
readdir_cb_count++; readdir_cb_count++;
} }
@ -1805,6 +1808,7 @@ TEST_IMPL(fs_stat_missing_path) {
TEST_IMPL(fs_readdir_empty_dir) { TEST_IMPL(fs_readdir_empty_dir) {
const char* path; const char* path;
uv_fs_t req; uv_fs_t req;
uv_dirent_t dent;
int r; int r;
path = "./empty_dir/"; path = "./empty_dir/";
@ -1813,10 +1817,14 @@ TEST_IMPL(fs_readdir_empty_dir) {
uv_fs_mkdir(loop, &req, path, 0777, NULL); uv_fs_mkdir(loop, &req, path, 0777, NULL);
uv_fs_req_cleanup(&req); uv_fs_req_cleanup(&req);
/* Fill the req to ensure that required fields are cleaned up */
memset(&req, 0xdb, sizeof(req));
r = uv_fs_readdir(loop, &req, path, 0, NULL); r = uv_fs_readdir(loop, &req, path, 0, NULL);
ASSERT(r == 0); ASSERT(r == 0);
ASSERT(req.result == 0); ASSERT(req.result == 0);
ASSERT(req.ptr == NULL); ASSERT(req.ptr == NULL);
ASSERT(UV_EOF == uv_fs_readdir_next(&req, &dent));
uv_fs_req_cleanup(&req); uv_fs_req_cleanup(&req);
r = uv_fs_readdir(loop, &readdir_req, path, 0, empty_readdir_cb); r = uv_fs_readdir(loop, &readdir_req, path, 0, empty_readdir_cb);

Loading…
Cancel
Save