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/process.h"
|
||||||
#include "nvim/event/libuv_process.h"
|
#include "nvim/event/libuv_process.h"
|
||||||
#include "nvim/log.h"
|
#include "nvim/log.h"
|
||||||
|
#include "nvim/macros.h"
|
||||||
#include "nvim/os/os.h"
|
#include "nvim/os/os.h"
|
||||||
|
|
||||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||||
@ -47,17 +48,20 @@ int libuv_process_spawn(LibuvProcess *uvproc)
|
|||||||
|
|
||||||
if (proc->in) {
|
if (proc->in) {
|
||||||
uvproc->uvstdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE;
|
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) {
|
if (proc->out) {
|
||||||
uvproc->uvstdio[1].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE;
|
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) {
|
if (proc->err) {
|
||||||
uvproc->uvstdio[2].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE;
|
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;
|
int status;
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include "nvim/event/libuv_process.h"
|
#include "nvim/event/libuv_process.h"
|
||||||
#include "nvim/os/pty_process.h"
|
#include "nvim/os/pty_process.h"
|
||||||
#include "nvim/globals.h"
|
#include "nvim/globals.h"
|
||||||
|
#include "nvim/macros.h"
|
||||||
#include "nvim/log.h"
|
#include "nvim/log.h"
|
||||||
|
|
||||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||||
@ -82,7 +83,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (proc->in) {
|
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->events = proc->events;
|
||||||
proc->in->internal_data = proc;
|
proc->in->internal_data = proc;
|
||||||
proc->in->internal_close_cb = on_process_stream_close;
|
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) {
|
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->events = proc->events;
|
||||||
proc->out->internal_data = proc;
|
proc->out->internal_data = proc;
|
||||||
proc->out->internal_close_cb = on_process_stream_close;
|
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) {
|
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->events = proc->events;
|
||||||
proc->err->internal_data = proc;
|
proc->err->internal_data = proc;
|
||||||
proc->err->internal_close_cb = on_process_stream_close;
|
proc->err->internal_close_cb = on_process_stream_close;
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "nvim/strings.h"
|
#include "nvim/strings.h"
|
||||||
#include "nvim/path.h"
|
#include "nvim/path.h"
|
||||||
#include "nvim/memory.h"
|
#include "nvim/memory.h"
|
||||||
|
#include "nvim/macros.h"
|
||||||
|
|
||||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||||
# include "event/socket.c.generated.h"
|
# include "event/socket.c.generated.h"
|
||||||
@ -71,10 +72,10 @@ void socket_watcher_init(Loop *loop, SocketWatcher *watcher,
|
|||||||
|
|
||||||
if (tcp) {
|
if (tcp) {
|
||||||
uv_tcp_init(&loop->uv, &watcher->uv.tcp.handle);
|
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 {
|
} else {
|
||||||
uv_pipe_init(&loop->uv, &watcher->uv.pipe.handle, 0);
|
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;
|
watcher->stream->data = watcher;
|
||||||
@ -122,10 +123,10 @@ int socket_watcher_accept(SocketWatcher *watcher, Stream *stream)
|
|||||||
uv_stream_t *client;
|
uv_stream_t *client;
|
||||||
|
|
||||||
if (watcher->stream->type == UV_TCP) {
|
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);
|
uv_tcp_init(watcher->uv.tcp.handle.loop, (uv_tcp_t *)client);
|
||||||
} else {
|
} 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);
|
uv_pipe_init(watcher->uv.pipe.handle.loop, (uv_pipe_t *)client, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include <uv.h>
|
#include <uv.h>
|
||||||
|
|
||||||
#include "nvim/rbuffer.h"
|
#include "nvim/rbuffer.h"
|
||||||
|
#include "nvim/macros.h"
|
||||||
#include "nvim/event/stream.h"
|
#include "nvim/event/stream.h"
|
||||||
|
|
||||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||||
@ -26,8 +27,9 @@ int stream_set_blocking(int fd, bool blocking)
|
|||||||
uv_loop_init(&loop);
|
uv_loop_init(&loop);
|
||||||
uv_pipe_init(&loop, &stream, 0);
|
uv_pipe_init(&loop, &stream, 0);
|
||||||
uv_pipe_open(&stream, fd);
|
uv_pipe_open(&stream, fd);
|
||||||
int retval = uv_stream_set_blocking((uv_stream_t *)&stream, blocking);
|
int retval = uv_stream_set_blocking(STRUCT_CAST(uv_stream_t, &stream),
|
||||||
uv_close((uv_handle_t *)&stream, NULL);
|
blocking);
|
||||||
|
uv_close(STRUCT_CAST(uv_handle_t, &stream), NULL);
|
||||||
uv_run(&loop, UV_RUN_NOWAIT); // not necessary, but couldn't hurt.
|
uv_run(&loop, UV_RUN_NOWAIT); // not necessary, but couldn't hurt.
|
||||||
uv_loop_close(&loop);
|
uv_loop_close(&loop);
|
||||||
return retval;
|
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);
|
assert(type == UV_NAMED_PIPE || type == UV_TTY);
|
||||||
uv_pipe_init(&loop->uv, &stream->uv.pipe, 0);
|
uv_pipe_init(&loop->uv, &stream->uv.pipe, 0);
|
||||||
uv_pipe_open(&stream->uv.pipe, fd);
|
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
|
# define FALLTHROUGH
|
||||||
#endif
|
#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
|
#endif // NVIM_MACROS_H
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "nvim/tui/tui.h"
|
#include "nvim/tui/tui.h"
|
||||||
#include "nvim/cursor_shape.h"
|
#include "nvim/cursor_shape.h"
|
||||||
#include "nvim/syntax.h"
|
#include "nvim/syntax.h"
|
||||||
|
#include "nvim/macros.h"
|
||||||
|
|
||||||
// Space reserved in the output buffer to restore the cursor to normal when
|
// Space reserved in the output buffer to restore the cursor to normal when
|
||||||
// flushing. No existing terminal will require 32 bytes to do that.
|
// 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.base = data->buf;
|
||||||
buf.len = data->bufpos;
|
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);
|
uv_run(&data->write_loop, UV_RUN_DEFAULT);
|
||||||
data->bufpos = 0;
|
data->bufpos = 0;
|
||||||
|
|
||||||
|
@ -6,6 +6,9 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <uv.h>
|
#include <uv.h>
|
||||||
|
|
||||||
|
// -V:STRUCT_CAST:641
|
||||||
|
#define STRUCT_CAST(Type, obj) ((Type *)(obj))
|
||||||
|
|
||||||
uv_tty_t tty;
|
uv_tty_t tty;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#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_tty_init(&write_loop, &out, 1, 0);
|
||||||
uv_write_t req;
|
uv_write_t req;
|
||||||
uv_buf_t b = {.base = buf->base, .len = (size_t)cnt};
|
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_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);
|
uv_run(&write_loop, UV_RUN_DEFAULT);
|
||||||
if (uv_loop_close(&write_loop)) {
|
if (uv_loop_close(&write_loop)) {
|
||||||
abort();
|
abort();
|
||||||
@ -149,7 +152,7 @@ int main(int argc, char **argv)
|
|||||||
uv_tty_init(uv_default_loop(), &tty, fileno(stderr), 1);
|
uv_tty_init(uv_default_loop(), &tty, fileno(stderr), 1);
|
||||||
uv_tty_set_mode(&tty, UV_TTY_MODE_RAW);
|
uv_tty_set_mode(&tty, UV_TTY_MODE_RAW);
|
||||||
tty.data = &interrupted;
|
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
|
#ifndef WIN32
|
||||||
struct sigaction sa;
|
struct sigaction sa;
|
||||||
sigemptyset(&sa.sa_mask);
|
sigemptyset(&sa.sa_mask);
|
||||||
|
Loading…
Reference in New Issue
Block a user