Windows: include syscall in fs errors
This commit is contained in:
parent
daaccc7cb7
commit
3733a85d8d
@ -49,7 +49,18 @@ using namespace v8;
|
|||||||
#define THROW_BAD_ARGS \
|
#define THROW_BAD_ARGS \
|
||||||
ThrowException(Exception::TypeError(String::New("Bad argument")))
|
ThrowException(Exception::TypeError(String::New("Bad argument")))
|
||||||
|
|
||||||
typedef class ReqWrap<uv_fs_t> FSReqWrap;
|
class FSReqWrap: public ReqWrap<uv_fs_t> {
|
||||||
|
public:
|
||||||
|
FSReqWrap(const char* syscall)
|
||||||
|
: syscall_(syscall) {
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* syscall() { return syscall_; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
const char* syscall_;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static Persistent<String> encoding_symbol;
|
static Persistent<String> encoding_symbol;
|
||||||
static Persistent<String> errno_symbol;
|
static Persistent<String> errno_symbol;
|
||||||
@ -86,11 +97,13 @@ static void After(uv_fs_t *req) {
|
|||||||
// If the request doesn't have a path parameter set.
|
// If the request doesn't have a path parameter set.
|
||||||
|
|
||||||
if (!req->path) {
|
if (!req->path) {
|
||||||
argv[0] = UVException(req->errorno);
|
argv[0] = UVException(req->errorno,
|
||||||
|
NULL,
|
||||||
|
req_wrap->syscall());
|
||||||
} else {
|
} else {
|
||||||
argv[0] = UVException(req->errorno,
|
argv[0] = UVException(req->errorno,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
req_wrap->syscall(),
|
||||||
static_cast<const char*>(req->path));
|
static_cast<const char*>(req->path));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -206,7 +219,7 @@ struct fs_req_wrap {
|
|||||||
|
|
||||||
|
|
||||||
#define ASYNC_CALL(func, callback, ...) \
|
#define ASYNC_CALL(func, callback, ...) \
|
||||||
FSReqWrap* req_wrap = new FSReqWrap(); \
|
FSReqWrap* req_wrap = new FSReqWrap(#func); \
|
||||||
int r = uv_fs_##func(uv_default_loop(), &req_wrap->req_, \
|
int r = uv_fs_##func(uv_default_loop(), &req_wrap->req_, \
|
||||||
__VA_ARGS__, After); \
|
__VA_ARGS__, After); \
|
||||||
assert(r == 0); \
|
assert(r == 0); \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user