dlugolecki.net.pl
Dziennik
Polecane
Software
projects
/
gedcom-parse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Compatibility with EasyTree and Family Origins.
[gedcom-parse.git]
/
gom
/
submission.c
diff --git
a/gom/submission.c
b/gom/submission.c
index 3ecee29232686349a6d31381e6ab90d53188eecc..cbdde5624537038d57f5c6845fc830d97168daef 100644
(file)
--- a/
gom/submission.c
+++ b/
gom/submission.c
@@
-55,7
+55,15
@@
void submission_subscribe()
gedcom_subscribe_to_element(ELT_SUBN_RIN, subn_rin_start, def_elt_end);
}
gedcom_subscribe_to_element(ELT_SUBN_RIN, subn_rin_start, def_elt_end);
}
-void submission_cleanup()
+void UNREFALLFUNC(submission)()
+{
+ if (gom_submission) {
+ unref_xref_value(gom_submission->submitter);
+ UNREFALLFUNC(user_data)(gom_submission->extra);
+ }
+}
+
+void CLEANFUNC(submission)()
{
if (gom_submission) {
SAFE_FREE(gom_submission->xrefstr);
{
if (gom_submission) {
SAFE_FREE(gom_submission->xrefstr);
@@
-66,8
+74,8
@@
void submission_cleanup()
SAFE_FREE(gom_submission->ordinance_process_flag);
SAFE_FREE(gom_submission->record_id);
DESTROY_CHAIN_ELTS(user_data, gom_submission->extra);
SAFE_FREE(gom_submission->ordinance_process_flag);
SAFE_FREE(gom_submission->record_id);
DESTROY_CHAIN_ELTS(user_data, gom_submission->extra);
- SAFE_FREE(gom_submission);
}
}
+ SAFE_FREE(gom_submission);
}
struct submission* gom_get_submission()
}
struct submission* gom_get_submission()
@@
-95,8
+103,7
@@
void DESTROYFUNC(submission)()
{
if (gom_submission) {
submission_cleanup();
{
if (gom_submission) {
submission_cleanup();
- free(gom_submission);
- gom_submission = NULL;
+ SAFE_FREE(gom_submission);
}
}
}
}
@@
-127,8
+134,10
@@
int DELETEFUNC(submission)()
int result = 1;
if (gom_submission) {
result = gedcom_delete_xref(gom_submission->xrefstr);
int result = 1;
if (gom_submission) {
result = gedcom_delete_xref(gom_submission->xrefstr);
- if (result == 0)
+ if (result == 0) {
+ UNREFALLFUNC(submission)();
DESTROYFUNC(submission)();
DESTROYFUNC(submission)();
+ }
}
return result;
}
}
return result;
}