32 curr = &(*curr)->
next)
39 (*curr)->data->save = save;
40 (*curr)->data->free = free;
57 struct registry_container *container,
69 registration = registration->
next, i++)
70 if (fields->
data[i] != NULL && registration->
data->
save != NULL)
71 adaptor (registration->
data->
save, container, fields->
data[i]);
77 registration = registration->
next, i++)
78 if (fields->
data[i] != NULL && registration->
data->
free != NULL)
79 adaptor (registration->
data->
free, container, fields->
data[i]);
81 memset (fields->
data, 0, fields->
num_data * sizeof (
void *));
87 struct registry_container *container,
90 void ***rdata = &fields->
data;
void registry_container_free_data(struct registry_data_registry *data_registry, registry_callback_adaptor adaptor, struct registry_container *container, struct registry_fields *fields)
void registry_clear_data(struct registry_data_registry *data_registry, registry_callback_adaptor adaptor, struct registry_container *container, struct registry_fields *fields)
struct registry_data_registration * next
unsigned num_registrations
void registry_set_data(struct registry_fields *fields, const struct registry_data *data, void *value)
struct registry_data_registration * registrations
struct registry_data * data
registry_data_callback save
void registry_alloc_data(struct registry_data_registry *registry, struct registry_fields *fields)
void(* registry_callback_adaptor)(registry_data_callback func, struct registry_container *container, void *data)
void * registry_data(struct registry_fields *fields, const struct registry_data *data)
const struct registry_data * register_data_with_cleanup(struct registry_data_registry *registry, registry_data_callback save, registry_data_callback free)
registry_data_callback free
void(* registry_data_callback)(struct registry_container *, void *)