mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Build: Add 'nonnull' attributes to msgpack_rpc functions
This commit is contained in:
parent
f3dc04bf7f
commit
e994b6f1b1
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include <msgpack.h>
|
#include <msgpack.h>
|
||||||
|
|
||||||
|
#include "nvim/func_attr.h"
|
||||||
#include "nvim/api/private/defs.h"
|
#include "nvim/api/private/defs.h"
|
||||||
|
|
||||||
/// Validates the basic structure of the msgpack-rpc call and fills `res`
|
/// Validates the basic structure of the msgpack-rpc call and fills `res`
|
||||||
@ -14,14 +15,16 @@
|
|||||||
/// @param id The channel id
|
/// @param id The channel id
|
||||||
/// @param req The parsed request object
|
/// @param req The parsed request object
|
||||||
/// @param res A packer that contains the response
|
/// @param res A packer that contains the response
|
||||||
void msgpack_rpc_call(uint64_t id, msgpack_object *req, msgpack_packer *res);
|
void msgpack_rpc_call(uint64_t id, msgpack_object *req, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_NONNULL_ARG(3);
|
||||||
|
|
||||||
/// Packs a notification message
|
/// Packs a notification message
|
||||||
///
|
///
|
||||||
/// @param type The message type, an arbitrary string
|
/// @param type The message type, an arbitrary string
|
||||||
/// @param data The notification data
|
/// @param data The notification data
|
||||||
/// @param packer Where the notification will be packed to
|
/// @param packer Where the notification will be packed to
|
||||||
void msgpack_rpc_notification(String type, Object data, msgpack_packer *pac);
|
void msgpack_rpc_notification(String type, Object data, msgpack_packer *pac)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(3);
|
||||||
|
|
||||||
/// Dispatches to the actual API function after basic payload validation by
|
/// Dispatches to the actual API function after basic payload validation by
|
||||||
/// `msgpack_rpc_call`. It is responsible for validating/converting arguments
|
/// `msgpack_rpc_call`. It is responsible for validating/converting arguments
|
||||||
@ -34,13 +37,15 @@ void msgpack_rpc_notification(String type, Object data, msgpack_packer *pac);
|
|||||||
/// @param res A packer that contains the response
|
/// @param res A packer that contains the response
|
||||||
void msgpack_rpc_dispatch(uint64_t id,
|
void msgpack_rpc_dispatch(uint64_t id,
|
||||||
msgpack_object *req,
|
msgpack_object *req,
|
||||||
msgpack_packer *res);
|
msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_NONNULL_ARG(3);
|
||||||
|
|
||||||
/// Finishes the msgpack-rpc call with an error message.
|
/// Finishes the msgpack-rpc call with an error message.
|
||||||
///
|
///
|
||||||
/// @param msg The error message
|
/// @param msg The error message
|
||||||
/// @param res A packer that contains the response
|
/// @param res A packer that contains the response
|
||||||
void msgpack_rpc_error(char *msg, msgpack_packer *res);
|
void msgpack_rpc_error(char *msg, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
|
||||||
/// Functions for validating and converting from msgpack types to C types.
|
/// Functions for validating and converting from msgpack types to C types.
|
||||||
/// These are used by `msgpack_rpc_dispatch` to validate and convert each
|
/// These are used by `msgpack_rpc_dispatch` to validate and convert each
|
||||||
@ -49,21 +54,36 @@ void msgpack_rpc_error(char *msg, msgpack_packer *res);
|
|||||||
/// @param obj The object to convert
|
/// @param obj The object to convert
|
||||||
/// @param[out] arg A pointer to the avalue
|
/// @param[out] arg A pointer to the avalue
|
||||||
/// @return true if the convertion succeeded, false otherwise
|
/// @return true if the convertion succeeded, false otherwise
|
||||||
bool msgpack_rpc_to_boolean(msgpack_object *obj, Boolean *arg);
|
bool msgpack_rpc_to_boolean(msgpack_object *obj, Boolean *arg)
|
||||||
bool msgpack_rpc_to_integer(msgpack_object *obj, Integer *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_float(msgpack_object *obj, Float *arg);
|
bool msgpack_rpc_to_integer(msgpack_object *obj, Integer *arg)
|
||||||
bool msgpack_rpc_to_position(msgpack_object *obj, Position *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_string(msgpack_object *obj, String *arg);
|
bool msgpack_rpc_to_float(msgpack_object *obj, Float *arg)
|
||||||
bool msgpack_rpc_to_buffer(msgpack_object *obj, Buffer *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_window(msgpack_object *obj, Window *arg);
|
bool msgpack_rpc_to_position(msgpack_object *obj, Position *arg)
|
||||||
bool msgpack_rpc_to_tabpage(msgpack_object *obj, Tabpage *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_object(msgpack_object *obj, Object *arg);
|
bool msgpack_rpc_to_string(msgpack_object *obj, String *arg)
|
||||||
bool msgpack_rpc_to_stringarray(msgpack_object *obj, StringArray *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_bufferarray(msgpack_object *obj, BufferArray *arg);
|
bool msgpack_rpc_to_buffer(msgpack_object *obj, Buffer *arg)
|
||||||
bool msgpack_rpc_to_windowarray(msgpack_object *obj, WindowArray *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_tabpagearray(msgpack_object *obj, TabpageArray *arg);
|
bool msgpack_rpc_to_window(msgpack_object *obj, Window *arg)
|
||||||
bool msgpack_rpc_to_array(msgpack_object *obj, Array *arg);
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
bool msgpack_rpc_to_dictionary(msgpack_object *obj, Dictionary *arg);
|
bool msgpack_rpc_to_tabpage(msgpack_object *obj, Tabpage *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_object(msgpack_object *obj, Object *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_stringarray(msgpack_object *obj, StringArray *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_bufferarray(msgpack_object *obj, BufferArray *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_windowarray(msgpack_object *obj, WindowArray *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_tabpagearray(msgpack_object *obj, TabpageArray *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_array(msgpack_object *obj, Array *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
bool msgpack_rpc_to_dictionary(msgpack_object *obj, Dictionary *arg)
|
||||||
|
FUNC_ATTR_NONNULL_ALL;
|
||||||
|
|
||||||
/// Functions for converting from C types to msgpack types.
|
/// Functions for converting from C types to msgpack types.
|
||||||
/// These are used by `msgpack_rpc_dispatch` to convert return values
|
/// These are used by `msgpack_rpc_dispatch` to convert return values
|
||||||
@ -71,21 +91,36 @@ bool msgpack_rpc_to_dictionary(msgpack_object *obj, Dictionary *arg);
|
|||||||
///
|
///
|
||||||
/// @param result A pointer to the result
|
/// @param result A pointer to the result
|
||||||
/// @param res A packer that contains the response
|
/// @param res A packer that contains the response
|
||||||
void msgpack_rpc_from_boolean(Boolean result, msgpack_packer *res);
|
void msgpack_rpc_from_boolean(Boolean result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_integer(Integer result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_float(Float result, msgpack_packer *res);
|
void msgpack_rpc_from_integer(Integer result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_position(Position result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_string(String result, msgpack_packer *res);
|
void msgpack_rpc_from_float(Float result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_buffer(Buffer result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_window(Window result, msgpack_packer *res);
|
void msgpack_rpc_from_position(Position result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_tabpage(Tabpage result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_object(Object result, msgpack_packer *res);
|
void msgpack_rpc_from_string(String result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_stringarray(StringArray result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_bufferarray(BufferArray result, msgpack_packer *res);
|
void msgpack_rpc_from_buffer(Buffer result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_windowarray(WindowArray result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_tabpagearray(TabpageArray result, msgpack_packer *res);
|
void msgpack_rpc_from_window(Window result, msgpack_packer *res)
|
||||||
void msgpack_rpc_from_array(Array result, msgpack_packer *res);
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
void msgpack_rpc_from_dictionary(Dictionary result, msgpack_packer *res);
|
void msgpack_rpc_from_tabpage(Tabpage result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_object(Object result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_stringarray(StringArray result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_bufferarray(BufferArray result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_windowarray(WindowArray result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_tabpagearray(TabpageArray result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_array(Array result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
void msgpack_rpc_from_dictionary(Dictionary result, msgpack_packer *res)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(2);
|
||||||
|
|
||||||
/// Helpers for initializing types that may be freed later
|
/// Helpers for initializing types that may be freed later
|
||||||
#define msgpack_rpc_init_boolean
|
#define msgpack_rpc_init_boolean
|
||||||
|
Loading…
Reference in New Issue
Block a user