5#ifndef SPA_POD_DYNAMIC_H
6#define SPA_POD_DYNAMIC_H
13#include <spa/utils/cleanup.h>
22static int spa_pod_dynamic_builder_overflow(
void *data, uint32_t
size)
25 int32_t old_size = d->
b.
size;
27 void *old_data = d->
b.
data, *new_data;
29 if (old_data == d->
data)
31 if ((new_data = realloc(d->
b.
data, new_size)) == NULL)
33 if (old_data == d->
data && new_data != old_data && old_size > 0)
34 memcpy(new_data, old_data, old_size);
41 void *data, uint32_t size, uint32_t
extend)
45 .overflow = spa_pod_dynamic_builder_overflow
56 free(builder->
b.
data);
60 spa_pod_dynamic_builder_clean(thing);
static void spa_pod_builder_set_callbacks(struct spa_pod_builder *builder, const struct spa_pod_builder_callbacks *callbacks, void *data)
Definition builder.h:71
#define SPA_POD_BUILDER_INIT(buffer, size)
Definition builder.h:62
#define SPA_VERSION_POD_BUILDER_CALLBACKS
Definition builder.h:47
#define SPA_ROUND_UP_N(num, align)
Definition defs.h:342
uint32_t version
Definition builder.h:48
void * data
Definition builder.h:54
uint32_t size
Definition builder.h:55
uint32_t extend
Definition dynamic.h:22
uint32_t _padding
Definition dynamic.h:23
struct spa_pod_builder b
Definition dynamic.h:20
void * data
Definition dynamic.h:21