uv: apply floating patch 2f54947b
This commit is contained in:
parent
c5f5d4cd11
commit
7fd35e6ea4
7
deps/uv/src/unix/fs.c
vendored
7
deps/uv/src/unix/fs.c
vendored
@ -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
vendored
8
deps/uv/test/test-fs.c
vendored
@ -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…
x
Reference in New Issue
Block a user