mirror of
https://github.com/neovim/neovim.git
synced 2025-10-03 08:28:34 +00:00
refactor(map): remove extra-allocating map_new/map_free functions
Note: the reason for removing them is not that there after this refactor is no use of them, but rather that having them available is an anti-pattern: they manange an _extra_ heap allocation which has nothing to do with the functionality of the map itself (khash manages the real buffers internally). In case there happens to be a reason to allocate the map structure itself later, this should be made explicit using xcalloc/xfree calls.
This commit is contained in:
@@ -21,12 +21,12 @@
|
||||
#include "nvim/api/window.h"
|
||||
#include "nvim/api/deprecated.h"
|
||||
|
||||
static Map(String, MsgpackRpcRequestHandler) *methods = NULL;
|
||||
static Map(String, MsgpackRpcRequestHandler) methods = MAP_INIT;
|
||||
|
||||
static void msgpack_rpc_add_method_handler(String method,
|
||||
MsgpackRpcRequestHandler handler)
|
||||
{
|
||||
map_put(String, MsgpackRpcRequestHandler)(methods, method, handler);
|
||||
map_put(String, MsgpackRpcRequestHandler)(&methods, method, handler);
|
||||
}
|
||||
|
||||
/// @param name API method name
|
||||
@@ -37,7 +37,7 @@ MsgpackRpcRequestHandler msgpack_rpc_get_handler_for(const char *name,
|
||||
{
|
||||
String m = { .data = (char *)name, .size = name_len };
|
||||
MsgpackRpcRequestHandler rv =
|
||||
map_get(String, MsgpackRpcRequestHandler)(methods, m);
|
||||
map_get(String, MsgpackRpcRequestHandler)(&methods, m);
|
||||
|
||||
if (!rv.fn) {
|
||||
api_set_error(error, kErrorTypeException, "Invalid method: %.*s",
|
||||
|
@@ -1724,7 +1724,7 @@ const char *describe_ns(NS ns_id)
|
||||
{
|
||||
String name;
|
||||
handle_T id;
|
||||
map_foreach((&namespace_ids), name, id, {
|
||||
map_foreach(&namespace_ids, name, id, {
|
||||
if ((NS)id == ns_id && name.size) {
|
||||
return name.data;
|
||||
}
|
||||
|
@@ -63,7 +63,7 @@ void api_vim_free_all_mem(void)
|
||||
{
|
||||
String name;
|
||||
handle_T id;
|
||||
map_foreach((&namespace_ids), name, id, {
|
||||
map_foreach(&namespace_ids, name, id, {
|
||||
(void)id;
|
||||
xfree(name.data);
|
||||
})
|
||||
@@ -1584,7 +1584,7 @@ Dictionary nvim_get_namespaces(void)
|
||||
String name;
|
||||
handle_T id;
|
||||
|
||||
map_foreach((&namespace_ids), name, id, {
|
||||
map_foreach(&namespace_ids, name, id, {
|
||||
PUT(retval, name.data, INTEGER_OBJ(id));
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user