Cleanup assertions in serializer

Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
Erik Boasson 2019-08-13 14:33:25 +02:00 committed by eboasson
parent 891fc2b12f
commit 1129939865

View file

@ -333,12 +333,14 @@ static void dds_streamBE_write_string (dds_ostreamBE_t * __restrict os, const ch
} }
} }
#ifndef NDEBUG
static bool insn_key_ok_p (uint32_t insn) static bool insn_key_ok_p (uint32_t insn)
{ {
return (DDS_OP (insn) == DDS_OP_ADR && (insn & DDS_OP_FLAG_KEY) && return (DDS_OP (insn) == DDS_OP_ADR && (insn & DDS_OP_FLAG_KEY) &&
(DDS_OP_TYPE (insn) <= DDS_OP_VAL_BST || (DDS_OP_TYPE (insn) <= DDS_OP_VAL_BST ||
(DDS_OP_TYPE (insn) == DDS_OP_VAL_ARR && DDS_OP_SUBTYPE (insn) <= DDS_OP_VAL_8BY))); (DDS_OP_TYPE (insn) == DDS_OP_VAL_ARR && DDS_OP_SUBTYPE (insn) <= DDS_OP_VAL_8BY)));
} }
#endif
static uint32_t read_union_discriminant (dds_istream_t * __restrict is, enum dds_stream_typecode type) static uint32_t read_union_discriminant (dds_istream_t * __restrict is, enum dds_stream_typecode type)
{ {
@ -1041,7 +1043,7 @@ static bool stream_normalize_key (void * __restrict data, uint32_t size, bool bs
for (uint32_t i = 0; i < desc->m_nkeys; i++) for (uint32_t i = 0; i < desc->m_nkeys; i++)
{ {
const uint32_t *op = desc->m_ops + desc->m_keys[i].m_index; const uint32_t *op = desc->m_ops + desc->m_keys[i].m_index;
insn_key_ok_p (*op); assert (insn_key_ok_p (*op));
switch (DDS_OP_TYPE (*op)) switch (DDS_OP_TYPE (*op))
{ {
case DDS_OP_VAL_1BY: if (!normalize_uint8 (&off, size)) return false; break; case DDS_OP_VAL_1BY: if (!normalize_uint8 (&off, size)) return false; break;
@ -1116,7 +1118,7 @@ void dds_stream_read_key (dds_istream_t * __restrict is, char * __restrict sampl
{ {
const uint32_t *op = desc->m_ops + desc->m_keys[i].m_index; const uint32_t *op = desc->m_ops + desc->m_keys[i].m_index;
char *dst = sample + op[1]; char *dst = sample + op[1];
insn_key_ok_p (*op); assert (insn_key_ok_p (*op));
switch (DDS_OP_TYPE (*op)) switch (DDS_OP_TYPE (*op))
{ {
case DDS_OP_VAL_1BY: *((uint8_t *) dst) = dds_is_get1 (is); break; case DDS_OP_VAL_1BY: *((uint8_t *) dst) = dds_is_get1 (is); break;