Skip to content

Commit

Permalink
Free Jobs for Customers and Vendors on book close
Browse files Browse the repository at this point in the history
  • Loading branch information
Bob-IT committed Aug 12, 2021
1 parent c2a6f1e commit b421b3d
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 0 deletions.
2 changes: 2 additions & 0 deletions libgnucash/engine/gncCustomer.c
Expand Up @@ -353,6 +353,8 @@ static void gncCustomerFree (GncCustomer *cust)
gncAddressDestroy (cust->addr);
gncAddressBeginEdit (cust->shipaddr);
gncAddressDestroy (cust->shipaddr);

gncJobFreeList (cust->jobs);
g_list_free (cust->jobs);
g_free (cust->balance);

Expand Down
12 changes: 12 additions & 0 deletions libgnucash/engine/gncJob.c
Expand Up @@ -231,6 +231,18 @@ GncJob *gncJobCreate (QofBook *book)
return job;
}

static void free_job_list (GncJob *job)
{
gncJobBeginEdit (job);
gncJobDestroy (job);
}

void gncJobFreeList (GList *jobs)
{
GList *job_list = g_list_copy (jobs);
g_list_free_full (job_list, (GDestroyNotify)free_job_list);
}

void gncJobDestroy (GncJob *job)
{
if (!job) return;
Expand Down
1 change: 1 addition & 0 deletions libgnucash/engine/gncJob.h
Expand Up @@ -57,6 +57,7 @@ GType gnc_job_get_type(void);

GncJob *gncJobCreate (QofBook *book);
void gncJobDestroy (GncJob *job);
void gncJobFreeList (GList *jobs);

/** \name Set Functions
@{
Expand Down
2 changes: 2 additions & 0 deletions libgnucash/engine/gncVendor.c
Expand Up @@ -496,6 +496,8 @@ static void gncVendorFree (GncVendor *vendor)
CACHE_REMOVE (vendor->notes);
gncAddressBeginEdit (vendor->addr);
gncAddressDestroy (vendor->addr);

gncJobFreeList (vendor->jobs);
g_list_free (vendor->jobs);
g_free (vendor->balance);

Expand Down

0 comments on commit b421b3d

Please sign in to comment.