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/msgpack_rpc/helpers.h"
#include "nvim/ascii.h"
#include "nvim/assert.h"
#include "nvim/vim.h"
#include "nvim/buffer.h"
#include "nvim/window.h"
@@ -760,12 +761,9 @@ bool object_to_vim(Object obj, typval_T *tv, Error *err)
case kObjectTypeWindow:
case kObjectTypeTabpage:
case kObjectTypeInteger:
if (obj.data.integer > VARNUMBER_MAX
|| obj.data.integer < VARNUMBER_MIN) {
api_set_error(err, kErrorTypeValidation, "Integer value outside range");
return false;
}
STATIC_ASSERT(sizeof(obj.data.integer) <= sizeof(varnumber_T),
"Expected integer size to be less than or equal to VimL "
"number size");
tv->v_type = VAR_NUMBER;
tv->vval.v_number = (varnumber_T)obj.data.integer;
break;