fix for core dump

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@1257 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/xacc-12-patch
Linas Vepstas 28 years ago
parent 894727c02c
commit a5dc6057a2

@ -246,7 +246,7 @@ xaccGetAccountFromName ( AccountGroup *root, const char * name )
/* first, look for accounts hanging off the root */
for (i=0; i<root->numAcc; i++) {
acc = root->account[i];
if (!strcmp(acc->accountName, name)) return acc;
if (!safe_strcmp(acc->accountName, name)) return acc;
}
/* if we are still here, then we haven't found the account yet.
@ -418,15 +418,15 @@ insertAccount( AccountGroup *grp, Account *acc )
grp->saved = FALSE;
grp->numAcc++;
grp->account = (Account **)_malloc(((grp->numAcc)+1)*sizeof(Account *));
grp->account = (Account **)_malloc(((grp->numAcc)+2)*sizeof(Account *));
for( i=0; i<(grp->numAcc-1); i++ ) {
for( i=0; i<(grp->numAcc); i++ ) {
grp->account[i] = oldAcc[i];
}
_free(oldAcc);
grp->account[(grp->numAcc)-1] = acc;
grp->account[(grp->numAcc)] = acc;
grp->numAcc++;
grp->account[(grp->numAcc)] = NULL;
return i;
@ -487,8 +487,7 @@ xaccConcatGroups (AccountGroup *togrp, AccountGroup *fromgrp)
insertAccount (togrp, acc);
fromgrp->account[i] = NULL;
}
_free (fromgrp->account);
fromgrp->account = NULL;
fromgrp->account[0] = NULL;
fromgrp->numAcc = 0;
}
@ -507,12 +506,12 @@ xaccMergeAccounts (AccountGroup *grp)
acc_a = grp->account[i];
for (j=i+1; j<grp->numAcc; j++) {
acc_b = grp->account[j];
if ((0 == strcmp(acc_a->accountName, acc_b->accountName)) &&
(0 == strcmp(acc_a->accountCode, acc_b->accountCode)) &&
(0 == strcmp(acc_a->description, acc_b->description)) &&
(0 == strcmp(acc_a->currency, acc_b->currency)) &&
(0 == strcmp(acc_a->security, acc_b->security)) &&
(0 == strcmp(acc_a->notes, acc_b->notes)) &&
if ((0 == safe_strcmp(acc_a->accountName, acc_b->accountName)) &&
(0 == safe_strcmp(acc_a->accountCode, acc_b->accountCode)) &&
(0 == safe_strcmp(acc_a->description, acc_b->description)) &&
(0 == safe_strcmp(acc_a->currency, acc_b->currency)) &&
(0 == safe_strcmp(acc_a->security, acc_b->security)) &&
(0 == safe_strcmp(acc_a->notes, acc_b->notes)) &&
(acc_a->type == acc_b->type)) {
AccountGroup *ga, *gb;
@ -522,13 +521,13 @@ xaccMergeAccounts (AccountGroup *grp)
gb = (AccountGroup *) acc_b->children;
if (gb) {
if (!ga) {
acc_a->children = (struct _account_group *) gb;
acc_a->children = gb;
gb->parent = acc_a;
acc_b->children = NULL;
} else {
xaccConcatGroups (ga, gb);
xaccFreeAccountGroup (gb);
acc_b->children = NULL;
xaccFreeAccountGroup (gb);
}
}
@ -550,6 +549,7 @@ xaccMergeAccounts (AccountGroup *grp)
grp->account[j] = grp->account[grp->numAcc -1];
grp->account[grp->numAcc -1] = NULL;
grp->numAcc --;
break;
}
}
}

Loading…
Cancel
Save