+void CLEANFUNC(change_date)(struct change_date *chan)
+{
+ if (chan) {
+ SAFE_FREE(chan->date);
+ SAFE_FREE(chan->time);
+ DESTROY_CHAIN_ELTS(note_sub, chan->note);
+ DESTROY_CHAIN_ELTS(user_data, chan->extra);
+ }
+ SAFE_FREE(chan);
+}
+
+struct change_date* gom_add_change_date(struct change_date** chan)
+{
+ struct change_date *obj = NULL;
+ if (chan && ! *chan) {
+ obj = (struct change_date*) malloc(sizeof(struct change_date));
+ if (! obj)
+ MEMORY_ERROR;
+ else {
+ memset(obj, 0, sizeof(struct change_date));
+ *chan = obj;
+ }
+ }
+ return obj;
+}
+
+int gom_delete_change_date(struct change_date** chan)