mirror of
https://github.com/neovim/neovim.git
synced 2025-09-16 00:08:19 +00:00
helpers.c: statically assert integer falls within range
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include "nvim/api/private/handle.h"
|
#include "nvim/api/private/handle.h"
|
||||||
#include "nvim/msgpack_rpc/helpers.h"
|
#include "nvim/msgpack_rpc/helpers.h"
|
||||||
#include "nvim/ascii.h"
|
#include "nvim/ascii.h"
|
||||||
|
#include "nvim/assert.h"
|
||||||
#include "nvim/vim.h"
|
#include "nvim/vim.h"
|
||||||
#include "nvim/buffer.h"
|
#include "nvim/buffer.h"
|
||||||
#include "nvim/window.h"
|
#include "nvim/window.h"
|
||||||
@@ -760,12 +761,9 @@ bool object_to_vim(Object obj, typval_T *tv, Error *err)
|
|||||||
case kObjectTypeWindow:
|
case kObjectTypeWindow:
|
||||||
case kObjectTypeTabpage:
|
case kObjectTypeTabpage:
|
||||||
case kObjectTypeInteger:
|
case kObjectTypeInteger:
|
||||||
if (obj.data.integer > VARNUMBER_MAX
|
STATIC_ASSERT(sizeof(obj.data.integer) <= sizeof(varnumber_T),
|
||||||
|| obj.data.integer < VARNUMBER_MIN) {
|
"Expected integer size to be less than or equal to VimL "
|
||||||
api_set_error(err, kErrorTypeValidation, "Integer value outside range");
|
"number size");
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
tv->v_type = VAR_NUMBER;
|
tv->v_type = VAR_NUMBER;
|
||||||
tv->vval.v_number = (varnumber_T)obj.data.integer;
|
tv->vval.v_number = (varnumber_T)obj.data.integer;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user