if (! ctxt)
NO_CONTEXT;
else {
- struct event *evt = (struct event *)malloc(sizeof(struct event));
- if (! evt)
- MEMORY_ERROR;
- else {
- memset (evt, 0, sizeof(struct event));
+ struct event *evt = SUB_MAKEFUNC(event)();
+ if (evt) {
evt->event = parsed_tag;
evt->event_name = strdup(tag);
if (! evt->event_name) {
if (! ctxt)
NO_CONTEXT;
else {
- struct event *evt = (struct event *)malloc(sizeof(struct event));
- if (! evt)
- MEMORY_ERROR;
- else {
- memset (evt, 0, sizeof(struct event));
+ struct event *evt = SUB_MAKEFUNC(event)();
+ if (evt) {
evt->event = parsed_tag;
evt->event_name = strdup(tag);
if (! evt->event_name) {
return (Gedcom_ctxt)result;
}
+DEFINE_SUB_MAKEFUNC(event)
+DEFINE_SUB_ADDFUNC(event)
+DEFINE_SUB_FINDFUNC(event)
+DEFINE_SUB_REMOVEFUNC(event)
+DEFINE_SUB_MOVEFUNC(event)
+
DEFINE_STRING_CB(event, sub_evt_type_start, type)
DEFINE_DATE_CB(event, sub_evt_date_start, date)
DEFINE_AGE_CB(event, sub_evt_age_start, age)
sub_evt_caus_start, def_elt_end);
}
+void UNREFALLFUNC(event)(struct event* obj)
+{
+ if (obj) {
+ struct event* runner;
+ for (runner = obj; runner; runner = runner->next) {
+ UNREFALLFUNC(place)(runner->place);
+ UNREFALLFUNC(address)(runner->address);
+ UNREFALLFUNC(source_citation)(runner->citation);
+ UNREFALLFUNC(multimedia_link)(runner->mm_link);
+ UNREFALLFUNC(note_sub)(runner->note);
+ unref_xref_value(runner->family);
+ UNREFALLFUNC(user_data)(runner->extra);
+ }
+ }
+}
+
void CLEANFUNC(event)(struct event* evt)
{
if (evt) {