API: Refactor: Change the integer type of remote objects to uint64_t

This commit is contained in:
Thiago de Arruda
2014-05-23 15:49:42 -03:00
parent 1e67b13fdc
commit f70f9bfac1
5 changed files with 23 additions and 10 deletions

View File

@@ -5,7 +5,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#define REMOTE_TYPE(type) typedef Integer type #define REMOTE_TYPE(type) typedef uint64_t type
#define TYPED_ARRAY_OF(type) \ #define TYPED_ARRAY_OF(type) \
typedef struct { \ typedef struct { \

View File

@@ -285,7 +285,7 @@ Object vim_to_object(typval_T *obj)
buf_T *find_buffer(Buffer buffer, Error *err) buf_T *find_buffer(Buffer buffer, Error *err)
{ {
if (buffer > INT_MAX || buffer < INT_MIN) { if (buffer > INT_MAX) {
set_api_error("Invalid buffer id", err); set_api_error("Invalid buffer id", err);
return NULL; return NULL;
} }
@@ -316,7 +316,7 @@ win_T * find_window(Window window, Error *err)
tabpage_T * find_tab(Tabpage tabpage, Error *err) tabpage_T * find_tab(Tabpage tabpage, Error *err)
{ {
if (tabpage > INT_MAX || tabpage < INT_MIN) { if (tabpage > INT_MAX) {
set_api_error("Invalid tabpage id", err); set_api_error("Invalid tabpage id", err);
return NULL; return NULL;
} }

View File

@@ -142,17 +142,27 @@ void vim_change_directory(String dir, Error *err)
String vim_get_current_line(Error *err) String vim_get_current_line(Error *err)
{ {
return buffer_get_line(curbuf->b_fnum, curwin->w_cursor.lnum - 1, err); assert(curbuf->b_fnum >= 0);
return buffer_get_line((uint64_t)curbuf->b_fnum,
curwin->w_cursor.lnum - 1,
err);
} }
void vim_set_current_line(String line, Error *err) void vim_set_current_line(String line, Error *err)
{ {
buffer_set_line(curbuf->b_fnum, curwin->w_cursor.lnum - 1, line, err); assert(curbuf->b_fnum >= 0);
buffer_set_line((uint64_t)curbuf->b_fnum,
curwin->w_cursor.lnum - 1,
line,
err);
} }
void vim_del_current_line(Error *err) void vim_del_current_line(Error *err)
{ {
buffer_del_line(curbuf->b_fnum, curwin->w_cursor.lnum - 1, err); assert(curbuf->b_fnum >= 0);
buffer_del_line((uint64_t)curbuf->b_fnum,
curwin->w_cursor.lnum - 1,
err);
} }
Object vim_get_var(String name, Error *err) Object vim_get_var(String name, Error *err)
@@ -205,7 +215,8 @@ Integer vim_get_buffer_count(void)
Buffer vim_get_current_buffer(void) Buffer vim_get_current_buffer(void)
{ {
return curbuf->b_fnum; assert(curbuf->b_fnum >= 0);
return (uint64_t)curbuf->b_fnum;
} }
void vim_set_current_buffer(Buffer buffer, Error *err) void vim_set_current_buffer(Buffer buffer, Error *err)

View File

@@ -19,7 +19,8 @@ Buffer window_get_buffer(Window window, Error *err)
return 0; return 0;
} }
return win->w_buffer->b_fnum; assert(win->w_buffer->b_fnum >= 0);
return (uint64_t)win->w_buffer->b_fnum;
} }
Position window_get_cursor(Window window, Error *err) Position window_get_cursor(Window window, Error *err)

View File

@@ -7,12 +7,13 @@
#define REMOTE_FUNCS_IMPL(t, lt) \ #define REMOTE_FUNCS_IMPL(t, lt) \
bool msgpack_rpc_to_##lt(msgpack_object *obj, t *arg) \ bool msgpack_rpc_to_##lt(msgpack_object *obj, t *arg) \
{ \ { \
return msgpack_rpc_to_integer(obj, arg); \ *arg = obj->via.u64; \
return obj->type == MSGPACK_OBJECT_POSITIVE_INTEGER; \
} \ } \
\ \
void msgpack_rpc_from_##lt(t result, msgpack_packer *res) \ void msgpack_rpc_from_##lt(t result, msgpack_packer *res) \
{ \ { \
msgpack_rpc_from_integer(result, res); \ msgpack_pack_uint64(res, result); \
} }
#define TYPED_ARRAY_IMPL(t, lt) \ #define TYPED_ARRAY_IMPL(t, lt) \