remove some memsets for unnecessarily clearing padding

Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
Erik Boasson 2018-08-05 08:24:25 +02:00 committed by eboasson
parent e84e644702
commit bb8d3d808c

View file

@ -29,6 +29,7 @@
#include "q__osplser.h" #include "q__osplser.h"
#define MAX_POOL_SIZE 16384 #define MAX_POOL_SIZE 16384
#define CLEAR_PADDING 0
#ifndef NDEBUG #ifndef NDEBUG
static int ispowerof2_size (size_t x) static int ispowerof2_size (size_t x)
@ -175,7 +176,7 @@ static serstate_t serstate_allocnew (serstatepool_t pool, const struct sertopic
size = offsetof (struct serdata, data) + st->size; size = offsetof (struct serdata, data) + st->size;
st->data = os_malloc (size); st->data = os_malloc (size);
memset (st->data, 0, size); memset (st->data, 0, sizeof (*st->data));
st->data->v.st = st; st->data->v.st = st;
serstate_init (st, topic); serstate_init (st, topic);
return st; return st;
@ -219,13 +220,17 @@ void * ddsi_serstate_append_aligned (serstate_t st, size_t n, size_t a)
buffer: ddsi_serstate_append() is called immediately afterward and will buffer: ddsi_serstate_append() is called immediately afterward and will
grow the buffer as soon as the end of the requested space no grow the buffer as soon as the end of the requested space no
longer fits. */ longer fits. */
#if CLEAR_PADDING
size_t pos0 = st->pos; size_t pos0 = st->pos;
#endif
char *p; char *p;
assert (ispowerof2_size (a)); assert (ispowerof2_size (a));
st->pos = alignup_size (st->pos, a); st->pos = alignup_size (st->pos, a);
p = ddsi_serstate_append (st, n); p = ddsi_serstate_append (st, n);
#if CLEAR_PADDING
if (p && st->pos > pos0) if (p && st->pos > pos0)
memset (st->data->data + pos0, 0, st->pos - pos0); memset (st->data->data + pos0, 0, st->pos - pos0);
#endif
return p; return p;
} }