* lib/libqof/qof/qofbookmerge.c: fix a few memory leaks.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13768 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/register-rewrite
Derek Atkins 20 years ago
parent 5cb26b7614
commit dd321449ce

@ -1,3 +1,7 @@
2006-04-11 Derek Atkins <derek@ihtfp.com>
* lib/libqof/qof/qofbookmerge.c: fix a few memory leaks.
2006-04-10 Derek Atkins <derek@ihtfp.com>
* src/import-export/hbci/gnc-hbci-gettrans.c:

@ -285,7 +285,7 @@ qof_book_merge_commit_foreach (
{
struct QofBookMergeRuleIterate iter;
QofBookMergeRule *currentRule;
GList *subList;
GList *subList, *node;
g_return_if_fail(cb != NULL);
g_return_if_fail(mergeData != NULL);
@ -296,13 +296,12 @@ qof_book_merge_commit_foreach (
iter.fcn = cb;
subList = NULL;
iter.ruleList = g_list_copy(mergeData->mergeList);
while(iter.ruleList!=NULL) {
currentRule = iter.ruleList->data;
iter.ruleList = NULL;
for (node = mergeData->mergeList; node != NULL; node = node->next) {
currentRule = node->data;
if(currentRule->mergeResult == mergeResult) {
subList = g_list_prepend(subList, currentRule);
}
iter.ruleList = g_list_next(iter.ruleList);
}
iter.remainder = g_list_length(subList);
iter.data = mergeData;
@ -747,7 +746,7 @@ qof_book_merge_init( QofBook *importBook, QofBook *targetBook)
{
QofBookMergeData *mergeData;
QofBookMergeRule *currentRule;
GList *check;
GList *node;
g_return_val_if_fail((importBook != NULL)&&(targetBook != NULL), NULL);
mergeData = g_new(QofBookMergeData, 1);
@ -767,16 +766,13 @@ qof_book_merge_init( QofBook *importBook, QofBook *targetBook)
qof_book_merge_match_orphans(mergeData);
}
check = g_list_copy(mergeData->mergeList);
while(check != NULL) {
currentRule = check->data;
for (node = mergeData->mergeList; node != NULL; node = node->next) {
currentRule = node->data;
if(currentRule->mergeResult == MERGE_INVALID) {
mergeData->abort = TRUE;
return(NULL);
}
check = g_list_next(check);
}
g_list_free(check);
return mergeData;
}
@ -944,7 +940,7 @@ gint
qof_book_merge_commit(QofBookMergeData *mergeData )
{
QofBookMergeRule *currentRule;
GList *check;
GList *check, *node;
g_return_val_if_fail(mergeData != NULL, -1);
g_return_val_if_fail(mergeData->mergeList != NULL, -1);
@ -952,22 +948,23 @@ qof_book_merge_commit(QofBookMergeData *mergeData )
if(mergeData->abort == TRUE) return -1;
check = g_list_copy(mergeData->mergeList);
g_return_val_if_fail(check != NULL, -1);
while(check != NULL) {
currentRule = check->data;
for (node = check; node != NULL; node = node->next) {
currentRule = node->data;
if(currentRule->mergeResult == MERGE_INVALID) {
qof_book_merge_abort(mergeData);
g_list_free(check);
return(-2);
}
if(currentRule->mergeResult == MERGE_REPORT) {
g_list_free(check);
return 1;
}
check = g_list_next(check);
}
g_list_free(check);
qof_book_merge_commit_foreach(qof_book_merge_commit_rule_loop,
MERGE_NEW, mergeData);
MERGE_NEW, mergeData);
qof_book_merge_commit_foreach(qof_book_merge_commit_rule_loop,
MERGE_UPDATE, mergeData);
MERGE_UPDATE, mergeData);
/* Placeholder for QofObject merge_helper_cb - all objects
and all parameters set */
while(mergeData->mergeList != NULL) {
@ -992,7 +989,7 @@ qof_book_merge_rule_foreach(QofBookMergeData *mergeData,
{
struct QofBookMergeRuleIterate iter;
QofBookMergeRule *currentRule;
GList *matching_rules;
GList *matching_rules, *node;
g_return_if_fail(cb != NULL);
g_return_if_fail(mergeData != NULL);
@ -1003,13 +1000,12 @@ qof_book_merge_rule_foreach(QofBookMergeData *mergeData,
iter.fcn = cb;
iter.data = mergeData;
matching_rules = NULL;
iter.ruleList = g_list_copy(mergeData->mergeList);
while(iter.ruleList!=NULL) {
currentRule = iter.ruleList->data;
iter.ruleList = NULL;
for (node = mergeData->mergeList; node != NULL; node = node->next) {
currentRule = node->data;
if(currentRule->mergeResult == mergeResult) {
matching_rules = g_list_prepend(matching_rules, currentRule);
}
iter.ruleList = g_list_next(iter.ruleList);
}
iter.remainder = g_list_length(matching_rules);
g_list_foreach (matching_rules, qof_book_merge_rule_cb, &iter);

Loading…
Cancel
Save