From cd0b4fe1450facf0edb20ccd5435b0b6a7bbc371 Mon Sep 17 00:00:00 2001 From: Phil Longstaff Date: Wed, 24 Feb 2010 20:11:22 +0000 Subject: [PATCH] When creating lists of database objects, use g_list_prepend() rather than g_list_append(). There may be cases where the list order is significant and thus needs to be reversed, but that is not true in these cases. This provides a large improvement in database loading performance. Analysis and basis patch supplied by Donald Allen. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18724 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/backend/sql/gnc-budget-sql.c | 2 +- src/backend/sql/gnc-schedxaction-sql.c | 2 +- src/backend/sql/gnc-transaction-sql.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/sql/gnc-budget-sql.c b/src/backend/sql/gnc-budget-sql.c index af3eab559f..96226cbf55 100644 --- a/src/backend/sql/gnc-budget-sql.c +++ b/src/backend/sql/gnc-budget-sql.c @@ -331,7 +331,7 @@ load_all_budgets( GncSqlBackend* be ) while( row != NULL ) { b = load_single_budget( be, row ); if( b != NULL ) { - list = g_list_append( list, b ); + list = g_list_prepend( list, b ); } row = gnc_sql_result_get_next_row( result ); } diff --git a/src/backend/sql/gnc-schedxaction-sql.c b/src/backend/sql/gnc-schedxaction-sql.c index eca39056d8..2b89acdceb 100644 --- a/src/backend/sql/gnc-schedxaction-sql.c +++ b/src/backend/sql/gnc-schedxaction-sql.c @@ -245,7 +245,7 @@ load_all_sxes( GncSqlBackend* be ) sx = load_single_sx( be, row ); if( sx != NULL ) { gnc_sxes_add_sx( sxes, sx ); - list = g_list_append( list, sx ); + list = g_list_prepend( list, sx ); } row = gnc_sql_result_get_next_row( result ); } diff --git a/src/backend/sql/gnc-transaction-sql.c b/src/backend/sql/gnc-transaction-sql.c index 67f8f794a0..a943aadc64 100644 --- a/src/backend/sql/gnc-transaction-sql.c +++ b/src/backend/sql/gnc-transaction-sql.c @@ -235,7 +235,7 @@ load_splits_for_tx_list( GncSqlBackend* be, GList* list ) Split* s; s = load_single_split( be, row ); if( s != NULL ) { - split_list = g_list_append( split_list, s ); + split_list = g_list_prepend( split_list, s ); } row = gnc_sql_result_get_next_row( result ); } @@ -382,7 +382,7 @@ query_transactions( GncSqlBackend* be, GncSqlStatement* stmt ) while( row != NULL ) { tx = load_single_tx( be, row ); if( tx != NULL ) { - tx_list = g_list_append( tx_list, tx ); + tx_list = g_list_prepend( tx_list, tx ); } row = gnc_sql_result_get_next_row( result ); }