X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsubmission.c;h=fcd3c862492be25a90778fc4b1df6997928534d2;hb=f8536669a2c38054a067bfe1596f90744b6c58da;hp=1c84088572303e6d43ca212b48cb83796f2a7687;hpb=7ea4ef8cae7b52f2bf66371a5e7b493cbd12900e;p=gedcom-parse.git diff --git a/gom/submission.c b/gom/submission.c index 1c84088..fcd3c86 100644 --- a/gom/submission.c +++ b/gom/submission.c @@ -56,7 +56,8 @@ void submission_subscribe() void submission_add_user_data(Gom_ctxt ctxt, struct user_data* data) { struct submission *obj = SAFE_CTXT_CAST(submission, ctxt); - LINK_CHAIN_ELT(user_data, obj->extra, data) + if (obj) + LINK_CHAIN_ELT(user_data, obj->extra, data); } void submission_cleanup() @@ -69,7 +70,7 @@ void submission_cleanup() SAFE_FREE(gom_submission->nr_of_descendant_gens); SAFE_FREE(gom_submission->ordinance_process_flag); SAFE_FREE(gom_submission->record_id); - DESTROY_CHAIN_ELTS(user_data, gom_submission->extra, user_data_cleanup) + DESTROY_CHAIN_ELTS(user_data, gom_submission->extra, user_data_cleanup); SAFE_FREE(gom_submission); } } @@ -79,12 +80,17 @@ struct submission* gom_get_submission() return gom_submission; } -struct submission* make_submission_record(char* xref) +struct submission* make_submission_record(const char* xref) { if (! gom_submission) { gom_submission = (struct submission*)malloc(sizeof(struct submission)); - memset(gom_submission, 0, sizeof(struct submission)); - gom_submission->xrefstr = strdup(xref); + if (! gom_submission) + MEMORY_ERROR; + else { + memset(gom_submission, 0, sizeof(struct submission)); + gom_submission->xrefstr = strdup(xref); + if (!gom_submission->xrefstr) MEMORY_ERROR; + } } return gom_submission;