mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
*: Fix all V641 errors
This commit is contained in:
parent
2411b6f137
commit
df67785886
@ -11,6 +11,7 @@
|
||||
#include "nvim/event/process.h"
|
||||
#include "nvim/event/libuv_process.h"
|
||||
#include "nvim/log.h"
|
||||
#include "nvim/macros.h"
|
||||
#include "nvim/os/os.h"
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
@ -47,17 +48,20 @@ int libuv_process_spawn(LibuvProcess *uvproc)
|
||||
|
||||
if (proc->in) {
|
||||
uvproc->uvstdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE;
|
||||
uvproc->uvstdio[0].data.stream = (uv_stream_t *)&proc->in->uv.pipe;
|
||||
uvproc->uvstdio[0].data.stream = STRUCT_CAST(uv_stream_t,
|
||||
&proc->in->uv.pipe);
|
||||
}
|
||||
|
||||
if (proc->out) {
|
||||
uvproc->uvstdio[1].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE;
|
||||
uvproc->uvstdio[1].data.stream = (uv_stream_t *)&proc->out->uv.pipe;
|
||||
uvproc->uvstdio[1].data.stream = STRUCT_CAST(uv_stream_t,
|
||||
&proc->out->uv.pipe);
|
||||
}
|
||||
|
||||
if (proc->err) {
|
||||
uvproc->uvstdio[2].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE;
|
||||
uvproc->uvstdio[2].data.stream = (uv_stream_t *)&proc->err->uv.pipe;
|
||||
uvproc->uvstdio[2].data.stream = STRUCT_CAST(uv_stream_t,
|
||||
&proc->err->uv.pipe);
|
||||
}
|
||||
|
||||
int status;
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "nvim/event/libuv_process.h"
|
||||
#include "nvim/os/pty_process.h"
|
||||
#include "nvim/globals.h"
|
||||
#include "nvim/macros.h"
|
||||
#include "nvim/log.h"
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
@ -82,7 +83,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
|
||||
}
|
||||
|
||||
if (proc->in) {
|
||||
stream_init(NULL, proc->in, -1, (uv_stream_t *)&proc->in->uv.pipe);
|
||||
stream_init(NULL, proc->in, -1,
|
||||
STRUCT_CAST(uv_stream_t, &proc->in->uv.pipe));
|
||||
proc->in->events = proc->events;
|
||||
proc->in->internal_data = proc;
|
||||
proc->in->internal_close_cb = on_process_stream_close;
|
||||
@ -90,7 +92,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
|
||||
}
|
||||
|
||||
if (proc->out) {
|
||||
stream_init(NULL, proc->out, -1, (uv_stream_t *)&proc->out->uv.pipe);
|
||||
stream_init(NULL, proc->out, -1,
|
||||
STRUCT_CAST(uv_stream_t, &proc->out->uv.pipe));
|
||||
proc->out->events = proc->events;
|
||||
proc->out->internal_data = proc;
|
||||
proc->out->internal_close_cb = on_process_stream_close;
|
||||
@ -98,7 +101,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
|
||||
}
|
||||
|
||||
if (proc->err) {
|
||||
stream_init(NULL, proc->err, -1, (uv_stream_t *)&proc->err->uv.pipe);
|
||||
stream_init(NULL, proc->err, -1,
|
||||
STRUCT_CAST(uv_stream_t, &proc->err->uv.pipe));
|
||||
proc->err->events = proc->events;
|
||||
proc->err->internal_data = proc;
|
||||
proc->err->internal_close_cb = on_process_stream_close;
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "nvim/strings.h"
|
||||
#include "nvim/path.h"
|
||||
#include "nvim/memory.h"
|
||||
#include "nvim/macros.h"
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "event/socket.c.generated.h"
|
||||
@ -71,10 +72,10 @@ void socket_watcher_init(Loop *loop, SocketWatcher *watcher,
|
||||
|
||||
if (tcp) {
|
||||
uv_tcp_init(&loop->uv, &watcher->uv.tcp.handle);
|
||||
watcher->stream = (uv_stream_t *)&watcher->uv.tcp.handle;
|
||||
watcher->stream = STRUCT_CAST(uv_stream_t, &watcher->uv.tcp.handle);
|
||||
} else {
|
||||
uv_pipe_init(&loop->uv, &watcher->uv.pipe.handle, 0);
|
||||
watcher->stream = (uv_stream_t *)&watcher->uv.pipe.handle;
|
||||
watcher->stream = STRUCT_CAST(uv_stream_t, &watcher->uv.pipe.handle);
|
||||
}
|
||||
|
||||
watcher->stream->data = watcher;
|
||||
@ -122,10 +123,10 @@ int socket_watcher_accept(SocketWatcher *watcher, Stream *stream)
|
||||
uv_stream_t *client;
|
||||
|
||||
if (watcher->stream->type == UV_TCP) {
|
||||
client = (uv_stream_t *)&stream->uv.tcp;
|
||||
client = STRUCT_CAST(uv_stream_t, &stream->uv.tcp);
|
||||
uv_tcp_init(watcher->uv.tcp.handle.loop, (uv_tcp_t *)client);
|
||||
} else {
|
||||
client = (uv_stream_t *)&stream->uv.pipe;
|
||||
client = STRUCT_CAST(uv_stream_t, &stream->uv.pipe);
|
||||
uv_pipe_init(watcher->uv.pipe.handle.loop, (uv_pipe_t *)client, 0);
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <uv.h>
|
||||
|
||||
#include "nvim/rbuffer.h"
|
||||
#include "nvim/macros.h"
|
||||
#include "nvim/event/stream.h"
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
@ -26,8 +27,9 @@ int stream_set_blocking(int fd, bool blocking)
|
||||
uv_loop_init(&loop);
|
||||
uv_pipe_init(&loop, &stream, 0);
|
||||
uv_pipe_open(&stream, fd);
|
||||
int retval = uv_stream_set_blocking((uv_stream_t *)&stream, blocking);
|
||||
uv_close((uv_handle_t *)&stream, NULL);
|
||||
int retval = uv_stream_set_blocking(STRUCT_CAST(uv_stream_t, &stream),
|
||||
blocking);
|
||||
uv_close(STRUCT_CAST(uv_handle_t, &stream), NULL);
|
||||
uv_run(&loop, UV_RUN_NOWAIT); // not necessary, but couldn't hurt.
|
||||
uv_loop_close(&loop);
|
||||
return retval;
|
||||
@ -52,7 +54,7 @@ void stream_init(Loop *loop, Stream *stream, int fd, uv_stream_t *uvstream)
|
||||
assert(type == UV_NAMED_PIPE || type == UV_TTY);
|
||||
uv_pipe_init(&loop->uv, &stream->uv.pipe, 0);
|
||||
uv_pipe_open(&stream->uv.pipe, fd);
|
||||
stream->uvstream = (uv_stream_t *)&stream->uv.pipe;
|
||||
stream->uvstream = STRUCT_CAST(uv_stream_t, &stream->uv.pipe);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -171,4 +171,16 @@
|
||||
# define FALLTHROUGH
|
||||
#endif
|
||||
|
||||
// -V:STRUCT_CAST:641
|
||||
|
||||
/// Change type of structure pointers: cast `struct a *` to `struct b *`
|
||||
///
|
||||
/// Used to silence PVS errors.
|
||||
///
|
||||
/// @param Type Structure to cast to.
|
||||
/// @param obj Object to cast.
|
||||
///
|
||||
/// @return ((Type *)obj).
|
||||
#define STRUCT_CAST(Type, obj) ((Type *)(obj))
|
||||
|
||||
#endif // NVIM_MACROS_H
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "nvim/tui/tui.h"
|
||||
#include "nvim/cursor_shape.h"
|
||||
#include "nvim/syntax.h"
|
||||
#include "nvim/macros.h"
|
||||
|
||||
// Space reserved in the output buffer to restore the cursor to normal when
|
||||
// flushing. No existing terminal will require 32 bytes to do that.
|
||||
@ -1079,7 +1080,7 @@ static void flush_buf(UI *ui, bool toggle_cursor)
|
||||
|
||||
buf.base = data->buf;
|
||||
buf.len = data->bufpos;
|
||||
uv_write(&req, (uv_stream_t *)&data->output_handle, &buf, 1, NULL);
|
||||
uv_write(&req, STRUCT_CAST(uv_stream_t, &data->output_handle), &buf, 1, NULL);
|
||||
uv_run(&data->write_loop, UV_RUN_DEFAULT);
|
||||
data->bufpos = 0;
|
||||
|
||||
|
@ -6,6 +6,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <uv.h>
|
||||
|
||||
// -V:STRUCT_CAST:641
|
||||
#define STRUCT_CAST(Type, obj) ((Type *)(obj))
|
||||
|
||||
uv_tty_t tty;
|
||||
|
||||
#ifdef _WIN32
|
||||
@ -88,9 +91,9 @@ static void read_cb(uv_stream_t *stream, ssize_t cnt, const uv_buf_t *buf)
|
||||
uv_tty_init(&write_loop, &out, 1, 0);
|
||||
uv_write_t req;
|
||||
uv_buf_t b = {.base = buf->base, .len = (size_t)cnt};
|
||||
uv_write(&req, (uv_stream_t *)&out, &b, 1, NULL);
|
||||
uv_write(&req, STRUCT_CAST(uv_stream_t, &out), &b, 1, NULL);
|
||||
uv_run(&write_loop, UV_RUN_DEFAULT);
|
||||
uv_close((uv_handle_t *)&out, NULL);
|
||||
uv_close(STRUCT_CAST(uv_handle_t, &out), NULL);
|
||||
uv_run(&write_loop, UV_RUN_DEFAULT);
|
||||
if (uv_loop_close(&write_loop)) {
|
||||
abort();
|
||||
@ -149,7 +152,7 @@ int main(int argc, char **argv)
|
||||
uv_tty_init(uv_default_loop(), &tty, fileno(stderr), 1);
|
||||
uv_tty_set_mode(&tty, UV_TTY_MODE_RAW);
|
||||
tty.data = &interrupted;
|
||||
uv_read_start((uv_stream_t *)&tty, alloc_cb, read_cb);
|
||||
uv_read_start(STRUCT_CAST(uv_stream_t, &tty), alloc_cb, read_cb);
|
||||
#ifndef WIN32
|
||||
struct sigaction sa;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
|
Loading…
Reference in New Issue
Block a user