mirror of
https://github.com/Gnucash/gnucash.git
synced 2026-09-03 20:53:02 -05:00
* 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
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user