Added functions to add, remove and move substructs.
[gedcom-parse.git] / gom / association.c
index 2d9cc2d56fafd2faf3f2b9e7caf2244d765bb6f1..9e392099c5fe73daed06146a375ed7e339952c11 100644 (file)
@@ -58,6 +58,10 @@ Gedcom_ctxt sub_assoc_start(_ELT_PARAMS_)
 }
 
 DEFINE_SUB_MAKEFUNC(association)
+DEFINE_SUB_ADDFUNC(association)
+DEFINE_SUB_FINDFUNC(association)
+DEFINE_SUB_REMOVEFUNC(association)
+DEFINE_SUB_MOVEFUNC(association)
      
 DEFINE_STRING_CB(association, sub_assoc_rela_start, relation)
 
@@ -97,6 +101,19 @@ void association_subscribe()
                              def_elt_end);
 }
 
+void UNREFALLFUNC(association)(struct association *obj)
+{
+  if (obj) {
+    struct association* runner;
+    for (runner = obj; runner; runner = runner->next) {
+      unref_xref_value(runner->to);
+      UNREFALLFUNC(source_citation)(runner->citation);
+      UNREFALLFUNC(note_sub)(runner->note);
+      UNREFALLFUNC(user_data)(runner->extra);
+    }
+  }
+}
+
 void CLEANFUNC(association)(struct association* assoc)
 {
   if (assoc) {