mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Add handling for MSGPACK_OBJECT_FLOAT{32,64}
msgpack-c previously only had MSGPACK_OBJECT_FLOAT, which was a 64-bit value. Now, 32-bit and 64-bit floats are supported as distinct types, but we'll simply continue to treat everything as 64-bit types.
This commit is contained in:
parent
af2ee9c5d1
commit
f4a3a96b68
@ -973,7 +973,13 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MSGPACK_OBJECT_FLOAT: {
|
||||
#ifdef NVIM_MSGPACK_HAS_FLOAT32
|
||||
case MSGPACK_OBJECT_FLOAT32:
|
||||
case MSGPACK_OBJECT_FLOAT64:
|
||||
#else
|
||||
case MSGPACK_OBJECT_FLOAT:
|
||||
#endif
|
||||
{
|
||||
*rettv = (typval_T) {
|
||||
.v_type = VAR_FLOAT,
|
||||
.v_lock = VAR_UNLOCKED,
|
||||
|
@ -114,7 +114,13 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MSGPACK_OBJECT_FLOAT: {
|
||||
#ifdef NVIM_MSGPACK_HAS_FLOAT32
|
||||
case MSGPACK_OBJECT_FLOAT32:
|
||||
case MSGPACK_OBJECT_FLOAT64:
|
||||
#else
|
||||
case MSGPACK_OBJECT_FLOAT:
|
||||
#endif
|
||||
{
|
||||
STATIC_ASSERT(sizeof(Float) == sizeof(cur.mobj->via.f64),
|
||||
"Msgpack floating-point size does not match API integer");
|
||||
*cur.aobj = FLOATING_OBJ(cur.mobj->via.f64);
|
||||
@ -181,7 +187,12 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg)
|
||||
case MSGPACK_OBJECT_BOOLEAN:
|
||||
case MSGPACK_OBJECT_POSITIVE_INTEGER:
|
||||
case MSGPACK_OBJECT_NEGATIVE_INTEGER:
|
||||
#ifdef NVIM_MSGPACK_HAS_FLOAT32
|
||||
case MSGPACK_OBJECT_FLOAT32:
|
||||
case MSGPACK_OBJECT_FLOAT64:
|
||||
#else
|
||||
case MSGPACK_OBJECT_FLOAT:
|
||||
#endif
|
||||
case MSGPACK_OBJECT_EXT:
|
||||
case MSGPACK_OBJECT_MAP:
|
||||
case MSGPACK_OBJECT_ARRAY: {
|
||||
|
Loading…
Reference in New Issue
Block a user