helpers.c: statically assert integer falls within range

This commit is contained in:
Peter Kalauskas
2017-11-20 11:27:06 -08:00
parent c24b74c229
commit c030a38168

View File

@@ -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;