Multiple test fixes.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3874 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-05-21 00:06:01 +00:00
parent 7848b5e560
commit b688a89b66
3 changed files with 30 additions and 11 deletions

View File

@ -162,21 +162,20 @@ static void _file_write_write_callback(uv_fs_t* req)
static void _file_write_open_callback(uv_fs_t* req)
{
fs_req_t* fsreq = (fs_req_t*)req;
uv_fs_req_cleanup(req);
tf_task_t* task = req->loop->data;
JSContext* context = tf_task_get_context(task);
promiseid_t promise = (promiseid_t)(intptr_t)req->data;
if (req->result >= 0)
{
size_t size = 0;
memcpy(&size, req + 1, sizeof(size));
uv_buf_t buf = { .base = (char*)(req + 1) + sizeof(size), .len = size };
uv_file file = req->result;
int result = uv_fs_write(req->loop, req, file, &buf, 1, 0, _file_write_write_callback);
uv_buf_t buf = { .base = fsreq->buffer, .len = fsreq->size };
fsreq->file = req->result;
int result = uv_fs_write(req->loop, req, fsreq->file, &buf, 1, 0, _file_write_write_callback);
if (result < 0)
{
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, uv_strerror(result)));
result = uv_fs_close(req->loop, req, file, _file_async_close_callback);
result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
}
}
else