r16780 - gnucash/branches/gda-dev2/src/backend/gda - Add function parameter checks
Phil Longstaff
plongstaff at cvs.gnucash.org
Tue Jan 1 15:55:26 EST 2008
Author: plongstaff
Date: 2008-01-01 15:55:25 -0500 (Tue, 01 Jan 2008)
New Revision: 16780
Trac: http://svn.gnucash.org/trac/changeset/16780
Modified:
gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c
gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c
Log:
Add function parameter checks
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -83,10 +83,15 @@
static gpointer
get_parent( gpointer pObject, const QofParam* param )
{
- const Account* pAccount = GNC_ACCOUNT(pObject);
- const Account* pParent = gnc_account_get_parent( pAccount );
+ const Account* pAccount;
+ const Account* pParent;
const GUID* parent_guid;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_ACCOUNT(pObject), NULL );
+
+ pAccount = GNC_ACCOUNT(pObject);
+ pParent = gnc_account_get_parent( pAccount );
if( pParent == NULL ) {
parent_guid = NULL;
} else {
@@ -99,11 +104,16 @@
static void
set_parent( gpointer pObject, gpointer pValue )
{
- Account* pAccount = GNC_ACCOUNT(pObject);
- QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pAccount) );
+ Account* pAccount;
+ QofBook* pBook;
GUID* guid = (GUID*)pValue;
Account* pParent;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_ACCOUNT(pObject) );
+
+ pAccount = GNC_ACCOUNT(pObject);
+ pBook = qof_instance_get_book( QOF_INSTANCE(pAccount) );
if( guid != NULL ) {
pParent = xaccAccountLookup( guid, pBook );
if( pParent != NULL ) {
@@ -118,6 +128,9 @@
account_parent_guid_struct* s = (account_parent_guid_struct*)pObject;
GUID* guid = (GUID*)pValue;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
s->guid = *guid;
}
@@ -128,6 +141,9 @@
gnc_numeric cleared_balance;
gnc_numeric reconciled_balance;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pAccount != NULL );
+
gnc_gda_get_account_balances( be, pAccount, &start_balance, &cleared_balance, &reconciled_balance );
g_object_set( pAccount,
@@ -137,7 +153,7 @@
NULL);
}
-static Account*
+static void
load_single_account( GncGdaBackend* be, GdaDataModel* pModel, int row,
GList** l_accounts_needing_parents )
{
@@ -145,6 +161,11 @@
GUID acc_guid;
Account* pAccount;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( l_accounts_needing_parents != NULL );
+
guid = gnc_gda_load_guid( be, pModel, row );
acc_guid = *guid;
@@ -167,8 +188,6 @@
gnc_gda_load_object( be, pModel, row, GNC_ID_ACCOUNT, s, parent_col_table );
*l_accounts_needing_parents = g_list_prepend( *l_accounts_needing_parents, s );
}
-
- return pAccount;
}
static void
@@ -176,9 +195,14 @@
{
static GdaQuery* query = NULL;
GdaObject* ret;
- QofBook* pBook = be->primary_book;
- gnc_commodity_table* pTable = gnc_commodity_table_get_table( pBook );
+ QofBook* pBook;
+ gnc_commodity_table* pTable;
+ g_return_if_fail( be != NULL );
+
+ pBook = be->primary_book;
+ pTable = gnc_commodity_table_get_table( pBook );
+
/* First time, create the query */
if( query == NULL ) {
query = gnc_gda_create_select_query( be, TABLE_NAME );
@@ -189,12 +213,11 @@
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
int numRows = gda_data_model_get_n_rows( pModel );
int r;
- Account* pAccount;
Account* parent;
GList* l_accounts_needing_parents = NULL;
for( r = 0; r < numRows; r++ ) {
- pAccount = load_single_account( be, pModel, r, &l_accounts_needing_parents );
+ load_single_account( be, pModel, r, &l_accounts_needing_parents );
}
/* While there are items on the list of accounts needing parents,
@@ -230,7 +253,7 @@
if( root == NULL ) {
root = gnc_account_create_root( pBook );
}
- gnc_account_append_child( root, pAccount );
+ gnc_account_append_child( root, s->pAccount );
}
}
}
@@ -240,6 +263,8 @@
static void
create_account_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
}
@@ -250,6 +275,10 @@
Account* pAcc = GNC_ACCOUNT(inst);
const GUID* guid;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_ACCOUNT(inst) );
+
// If there is no commodity yet, this might be because a new account name has been entered directly
// into the register and an account window will be opened. The account info is not complete yet,
// but the name has been set, triggering this commit
@@ -277,14 +306,20 @@
static void
load_account_guid( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GUID guid;
const GUID* pGuid;
Account* account = NULL;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
pGuid = NULL;
} else {
@@ -294,8 +329,8 @@
if( pGuid != NULL ) {
account = xaccAccountLookup( pGuid, be->primary_book );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, account, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, account, NULL );
} else {
(*setter)( pObject, (const gpointer)account );
}
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -41,6 +41,7 @@
#include "gnc-engine.h"
#include "SX-book.h"
#include "Recurrence.h"
+#include "gnc-budget.h"
#include "gnc-backend-util-gda.h"
#include "gnc-gconf-utils.h"
@@ -101,12 +102,12 @@
}
static void
-gnc_gda_session_begin(QofBackend *be_start, QofSession *session,
- const gchar *book_id,
- gboolean ignore_lock,
- gboolean create_if_nonexistent)
+gnc_gda_session_begin( QofBackend *be_start, QofSession *session,
+ const gchar *book_id,
+ gboolean ignore_lock,
+ gboolean create_if_nonexistent )
{
- GncGdaBackend *be = (GncGdaBackend*) be_start;
+ GncGdaBackend *be = (GncGdaBackend*)be_start;
GError* error = NULL;
gda_backend be_data;
gchar* book_info;
@@ -114,6 +115,10 @@
gchar* username = "";
gchar* password = "";
+ g_return_if_fail( be_start != NULL );
+ g_return_if_fail( session != NULL );
+ g_return_if_fail( book_id != NULL );
+
ENTER (" ");
be->pClient = gda_client_new();
@@ -277,6 +282,9 @@
gnc_gda_session_end(QofBackend *be_start)
{
GncGdaBackend *be = (GncGdaBackend*)be_start;
+
+ g_return_if_fail( be_start != NULL );
+
ENTER (" ");
if( be->pDict != NULL ) {
@@ -298,6 +306,8 @@
static void
gnc_gda_destroy_backend(QofBackend *be)
{
+ g_return_if_fail( be != NULL );
+
g_free( be );
}
@@ -334,6 +344,9 @@
GncGdaDataType_t* pData;
int i;
+ g_return_if_fail( be_start != NULL );
+ g_return_if_fail( book != NULL );
+
ENTER( "be=%p, book=%p", be, book );
g_assert( be->primary_book == NULL );
@@ -368,18 +381,20 @@
static gint
compare_namespaces(gconstpointer a, gconstpointer b)
{
- const gchar *sa = (const gchar *) a;
- const gchar *sb = (const gchar *) b;
- return(safe_strcmp(sa, sb));
+ const gchar *sa = (const gchar *) a;
+ const gchar *sb = (const gchar *) b;
+
+ return( safe_strcmp( sa, sb ) );
}
static gint
compare_commodity_ids(gconstpointer a, gconstpointer b)
{
- const gnc_commodity *ca = (const gnc_commodity *) a;
- const gnc_commodity *cb = (const gnc_commodity *) b;
- return(safe_strcmp(gnc_commodity_get_mnemonic(ca),
- gnc_commodity_get_mnemonic(cb)));
+ const gnc_commodity *ca = (const gnc_commodity *) a;
+ const gnc_commodity *cb = (const gnc_commodity *) b;
+
+ return( safe_strcmp( gnc_commodity_get_mnemonic( ca ),
+ gnc_commodity_get_mnemonic( cb ) ) );
}
static void
@@ -389,6 +404,9 @@
GList* namespaces;
GList* lp;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
tbl = gnc_book_get_commodity_table( book );
namespaces = gnc_commodity_table_get_namespaces( tbl );
if( namespaces != NULL ) {
@@ -402,7 +420,7 @@
comms = g_list_sort( comms, compare_commodity_ids );
for( lp2 = comms; lp2 != NULL; lp2 = lp2->next ) {
- gnc_gda_save_commodity( be, GNC_COMMODITY(lp2->data) );
+ gnc_gda_save_commodity( be, GNC_COMMODITY(lp2->data) );
}
}
}
@@ -413,6 +431,9 @@
GList* descendants;
GList* node;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( root != NULL );
+
descendants = gnc_account_get_descendants( root );
for( node = descendants; node != NULL; node = g_list_next(node) ) {
gnc_gda_save_account( be, QOF_INSTANCE(GNC_ACCOUNT(node->data)) );
@@ -423,6 +444,9 @@
static void
save_accounts( GncGdaBackend* be, QofBook* book )
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
save_account_tree( be, gnc_book_get_root_account( book ) );
}
@@ -431,12 +455,19 @@
{
GncGdaBackend* be = (GncGdaBackend*)data;
+ g_return_if_fail( data != NULL );
+ g_return_if_fail( ent != NULL );
+ g_return_if_fail( GNC_IS_BUDGET(ent) );
+
gnc_gda_save_budget( be, ent );
}
static void
save_budgets( GncGdaBackend* be, QofBook* book )
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
qof_collection_foreach( qof_book_get_collection( book, GNC_ID_BUDGET ),
write_budget, be );
}
@@ -446,6 +477,9 @@
{
GncGdaBackend* be = (GncGdaBackend*)data;
+ g_return_val_if_fail( p != NULL, FALSE );
+ g_return_val_if_fail( data != NULL, FALSE );
+
gnc_gda_save_price( be, QOF_INSTANCE(p) );
return TRUE;
@@ -454,8 +488,13 @@
static void
save_prices( GncGdaBackend* be, QofBook* book )
{
- GNCPriceDB* priceDB = gnc_book_get_pricedb( book );
+ GNCPriceDB* priceDB;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
+ priceDB = gnc_book_get_pricedb( book );
+
gnc_pricedb_foreach_price( priceDB, save_price, be, TRUE );
}
@@ -464,6 +503,9 @@
{
GncGdaBackend* be = (GncGdaBackend*)data;
+ g_return_val_if_fail( tx != NULL, 0 );
+ g_return_val_if_fail( data != NULL, 0 );
+
gnc_gda_save_transaction( be, QOF_INSTANCE(tx) );
return 0;
@@ -472,6 +514,9 @@
static void
save_transactions( GncGdaBackend* be, QofBook* book )
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
xaccAccountTreeForEachTransaction( gnc_book_get_root_account( book ),
save_tx,
(gpointer)be );
@@ -482,6 +527,9 @@
{
Account* ra;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
ra = gnc_book_get_template_root( book );
if( gnc_account_n_descendants( ra ) > 0 ) {
save_account_tree( be, ra );
@@ -495,6 +543,9 @@
GList* schedXactions;
SchedXaction* tmpSX;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
schedXactions = gnc_book_get_schedxactions( book )->sx_list;
for( ; schedXactions != NULL; schedXactions = schedXactions->next ) {
@@ -527,6 +578,9 @@
gint numTables;
gda_backend be_data;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( book != NULL );
+
ENTER ("book=%p, primary=%p", book, fbe->primary_book);
/* Destroy the current contents of the database */
@@ -592,11 +646,15 @@
static void
gnc_gda_begin_edit (QofBackend *be, QofInstance *inst)
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
}
static void
gnc_gda_rollback_edit (QofBackend *be, QofInstance *inst)
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
}
static void
@@ -629,16 +687,17 @@
GError* error;
gboolean status;
- ENTER( " " );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
/* During initial load where objects are being created, don't commit
anything */
-
if( be->loading ) {
- LEAVE( "" );
return;
}
+ ENTER( " " );
+
g_debug( "gda_commit_edit(): %s dirty = %d, do_free=%d\n",
(inst->e_type ? inst->e_type : "(null)"),
qof_instance_get_dirty_flag(inst), qof_instance_get_destroying(inst) );
@@ -711,12 +770,19 @@
static void
handle_and_term( QofQueryTerm* pTerm, gchar* sql )
{
- GSList* pParamPath = qof_query_term_get_param_path( pTerm );
- QofQueryPredData* pPredData = qof_query_term_get_pred_data( pTerm );
- gboolean isInverted = qof_query_term_is_inverted( pTerm );
+ GSList* pParamPath;
+ QofQueryPredData* pPredData;
+ gboolean isInverted;
GSList* name;
gchar val[GUID_ENCODING_LENGTH+1];
+ g_return_if_fail( pTerm != NULL );
+ g_return_if_fail( sql != NULL );
+
+ pParamPath = qof_query_term_get_param_path( pTerm );
+ pPredData = qof_query_term_get_pred_data( pTerm );
+ isInverted = qof_query_term_is_inverted( pTerm );
+
strcat( sql, "(" );
if( isInverted ) {
strcat( sql, "!" );
@@ -803,7 +869,7 @@
// Is this the right item?
if( strcmp( type, be_data->pQueryInfo->searchObj ) != 0 ) return;
- g_return_if_fail( !be_data->ok );
+ if( be_data->ok ) return;
if( pData->compile_query != NULL ) {
be_data->pQueryInfo->pCompiledQuery = (pData->compile_query)(
@@ -823,6 +889,9 @@
gda_backend be_data;
gnc_gda_query_info* pQueryInfo;
+ g_return_val_if_fail( pBEnd != NULL, NULL );
+ g_return_val_if_fail( pQuery != NULL, NULL );
+
ENTER( " " );
searchObj = qof_query_get_search_for( pQuery );
@@ -900,6 +969,9 @@
gnc_gda_query_info* pQueryInfo = (gnc_gda_query_info*)pQuery;
gda_backend be_data;
+ g_return_if_fail( pBEnd != NULL );
+ g_return_if_fail( pQuery != NULL );
+
ENTER( " " );
// Try various objects first
@@ -947,6 +1019,8 @@
gnc_gda_query_info* pQueryInfo = (gnc_gda_query_info*)pQuery;
gda_backend be_data;
+ g_return_if_fail( pBEnd != NULL );
+ g_return_if_fail( pQuery != NULL );
g_return_if_fail( !be->in_query );
ENTER( " " );
@@ -1050,8 +1124,10 @@
}
static void
-gnc_gda_provider_free (QofBackendProvider *prov)
+gnc_gda_provider_free( QofBackendProvider *prov )
{
+ g_return_if_fail( prov != NULL );
+
prov->provider_name = NULL;
prov->access_method = NULL;
g_free (prov);
@@ -1062,15 +1138,13 @@
*
*/
static gboolean
-gnc_gda_check_sqlite_file(const gchar *path)
+gnc_gda_check_sqlite_file( const gchar *path )
{
FILE* f;
gchar buf[50];
// BAD if the path is null
- if( path == NULL ) {
- return FALSE;
- }
+ g_return_val_if_fail( path != NULL, FALSE );
if( g_str_has_suffix( path, ".db" ) ) {
f = g_fopen( path, "r" );
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -63,6 +63,10 @@
GdaQueryField* field;
GdaQueryField* field_value;
+ g_return_if_fail( query != NULL );
+ g_return_if_fail( col_name != NULL );
+ g_return_if_fail( value != NULL );
+
field = gda_query_field_field_new( query, col_name );
gda_query_field_set_visible( field, TRUE );
@@ -84,6 +88,10 @@
GdaQueryField* key;
GdaQueryField* key_value;
+ g_return_val_if_fail( query != NULL, NULL );
+ g_return_val_if_fail( col_name != NULL, NULL );
+ g_return_val_if_fail( value != NULL, NULL );
+
cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_EQUAL );
key = gda_query_field_field_new( query, col_name );
@@ -122,6 +130,9 @@
{
QofAccessFunc getter;
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+
if( (table_row->flags & COL_AUTOINC) != 0 ) {
getter = get_autoinc_id;
} else if( table_row->param_name != NULL ) {
@@ -137,19 +148,25 @@
static void
load_string( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
const gchar* s;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
s = NULL;
} else {
s = g_value_get_string( val );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, s, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, s, NULL );
} else {
(*setter)( pObject, (const gpointer)s );
}
@@ -162,6 +179,12 @@
QofAccessFunc getter;
gchar* s;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
if( table_row->gobj_param_name != NULL ) {
g_object_get( pObject, table_row->gobj_param_name, &s, NULL );
@@ -181,6 +204,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_string( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -191,6 +220,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_string( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name,
&value );
@@ -202,6 +237,11 @@
{
const gchar* dbms_type;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server,
cnn, G_TYPE_STRING );
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
@@ -216,19 +256,25 @@
static void
load_int( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
gint int_value;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
int_value = 0;
} else {
int_value = g_value_get_int( val );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, int_value, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, int_value, NULL );
} else {
(*setter)( pObject, GINT_TO_POINTER(int_value) );
}
@@ -241,6 +287,12 @@
gint int_value;
QofAccessFunc getter;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = gnc_gda_get_getter( obj_name, table_row );
@@ -255,6 +307,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_int( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -265,6 +323,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_int( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -275,6 +339,11 @@
{
const gchar* dbms_type;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server,
cnn, G_TYPE_INT );
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
@@ -289,19 +358,25 @@
static void
load_boolean( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
gint int_value;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
int_value = 0;
} else {
int_value = g_value_get_int( val );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, int_value, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, int_value, NULL );
} else {
(*setter)( pObject, GINT_TO_POINTER(int_value) );
}
@@ -314,6 +389,12 @@
gint int_value;
QofAccessFunc getter;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = gnc_gda_get_getter( obj_name, table_row );
@@ -328,6 +409,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_int( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -338,6 +425,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_int( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -348,6 +441,11 @@
{
const gchar* dbms_type;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server,
cnn, G_TYPE_INT );
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
@@ -362,12 +460,18 @@
static void
load_int64( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
gint64 i64_value;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
(*setter)( pObject, NULL );
} else {
@@ -384,6 +488,12 @@
gint64 i64_value;
QofAccessFunc getter;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = gnc_gda_get_getter( obj_name, table_row );
pInt64 = (*getter)( pObject, NULL );
@@ -400,6 +510,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_int64( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -410,6 +526,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_int64( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -420,6 +542,11 @@
{
const gchar* dbms_type;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server,
cnn, G_TYPE_INT64 );
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
@@ -434,12 +561,18 @@
static void
load_double( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
gdouble d_value;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
(*setter)( pObject, (gpointer)NULL );
} else {
@@ -456,6 +589,12 @@
gdouble* pDouble;
gdouble d_value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = gnc_gda_get_getter( obj_name, table_row );
@@ -473,6 +612,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_double( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -483,6 +628,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_double( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -493,6 +644,11 @@
{
const gchar* dbms_type;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server,
cnn, G_TYPE_INT64 );
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
@@ -507,21 +663,27 @@
static void
load_guid( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GUID guid;
const GUID* pGuid;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
pGuid = NULL;
} else {
string_to_guid( g_value_get_string( val ), &guid );
pGuid = &guid;
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, pGuid, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, pGuid, NULL );
} else {
(*setter)( pObject, (const gpointer)pGuid );
}
@@ -535,6 +697,12 @@
const GUID* guid;
gchar guid_buf[GUID_ENCODING_LENGTH+1];
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
if( table_row->gobj_param_name != NULL ) {
@@ -556,6 +724,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_guid( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -566,6 +740,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_guid( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -574,6 +754,11 @@
create_guid_col( GdaServerProvider* server, GdaConnection* cnn,
xmlNodePtr array_data, const col_cvt_t* table_row, gboolean pkey )
{
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
"char", GUID_ENCODING_LENGTH, table_row->flags | (pkey ? COL_PKEY : 0) );
}
@@ -592,6 +777,12 @@
gchar guid_buf[GUID_ENCODING_LENGTH+1];
QofInstance* inst;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
if( table_row->gobj_param_name != NULL ) {
@@ -616,6 +807,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_objectref_guid( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -626,6 +823,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_objectref_guid( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -634,6 +837,11 @@
gnc_gda_create_objectref_guid_col( GdaServerProvider* server, GdaConnection* cnn,
xmlNodePtr array_data, const col_cvt_t* table_row, gboolean pkey )
{
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
"char", GUID_ENCODING_LENGTH, table_row->flags | (pkey ? COL_PKEY : 0) );
}
@@ -644,13 +852,19 @@
static void
load_timespec( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GDate* date;
Timespec ts;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
(*setter)( pObject, NULL );
} else {
@@ -689,6 +903,12 @@
gint y, m, d;
gchar iso8601_buf[33];
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = (TimespecAccessFunc)gnc_gda_get_getter( obj_name, table_row );
@@ -708,6 +928,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_timespec( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -718,6 +944,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_timespec( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -728,6 +960,11 @@
{
const gchar* dbms_type;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server,
cnn, G_TYPE_DATE );
gnc_gda_add_table_column( server, cnn, array_data, table_row->col_name,
@@ -741,12 +978,18 @@
static void
load_date( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GDate* date;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
date = g_date_new_dmy( 1, 1, 1970 );
(*setter)( pObject, date );
@@ -781,6 +1024,12 @@
GDate* date;
QofAccessFunc getter;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = gnc_gda_get_getter( obj_name, table_row );
@@ -797,6 +1046,12 @@
{
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
get_gvalue_date( be, obj_name, pObject, table_row, &value );
gnc_gda_add_field_to_query( query, table_row->col_name, &value );
}
@@ -807,6 +1062,12 @@
{
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
get_gvalue_date( be, obj_name, pObject, table_row, &value );
return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
}
@@ -818,6 +1079,8 @@
static gint64
get_integer_value( const GValue* value )
{
+ g_return_val_if_fail( value != NULL, 0 );
+
if( G_VALUE_HOLDS_INT(value) ) {
return g_value_get_int( value );
} else if( G_VALUE_HOLDS_UINT(value) ) {
@@ -843,7 +1106,7 @@
static void
load_numeric( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
gchar* buf;
@@ -852,7 +1115,13 @@
gboolean isNull = FALSE;
NumericSetterFunc n_setter = (NumericSetterFunc)setter;
- buf = g_strdup_printf( "%s_num", table->col_name );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ buf = g_strdup_printf( "%s_num", table_row->col_name );
val = gda_data_model_get_value_at_col_name( pModel, buf, row );
g_free( buf );
if( gda_value_is_null( val ) ) {
@@ -861,7 +1130,7 @@
} else {
num = get_integer_value( val );
}
- buf = g_strdup_printf( "%s_denom", table->col_name );
+ buf = g_strdup_printf( "%s_denom", table_row->col_name );
val = gda_data_model_get_value_at_col_name( pModel, buf, row );
g_free( buf );
if( gda_value_is_null( val ) ) {
@@ -883,6 +1152,12 @@
NumericGetterFunc getter;
gnc_numeric n;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( value != NULL );
+
memset( value, 0, sizeof( GValue ) );
getter = (NumericGetterFunc)gnc_gda_get_getter( obj_name, table_row );
@@ -901,6 +1176,12 @@
gnc_numeric* n;
gchar* s;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
memset( &value, 0, sizeof( GValue ) );
memset( &num_value, 0, sizeof( GValue ) );
memset( &denom_value, 0, sizeof( GValue ) );
@@ -935,6 +1216,12 @@
GdaQueryCondition* denom_cond;
GdaQueryCondition* cond;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table_row != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
memset( &value, 0, sizeof( GValue ) );
memset( &num_value, 0, sizeof( GValue ) );
memset( &denom_value, 0, sizeof( GValue ) );
@@ -969,6 +1256,11 @@
const gchar* dbms_type;
gchar* buf;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( table_row != NULL );
+
dbms_type = gda_server_provider_get_default_dbms_type( server, cnn,
G_TYPE_INT64 );
buf = g_strdup_printf( "%s_num", table_row->col_name );
@@ -991,6 +1283,9 @@
void
gnc_gda_register_col_type_handler( const gchar* colType, const col_type_handler_t* handler )
{
+ g_return_if_fail( colType != NULL );
+ g_return_if_fail( handler != NULL );
+
if( g_columnTypeHash == NULL ) {
g_columnTypeHash = g_hash_table_new( g_str_hash, g_str_equal );
}
@@ -1003,6 +1298,8 @@
{
col_type_handler_t* pHandler;
+ g_return_val_if_fail( pHandler != NULL, NULL );
+
pHandler = g_hash_table_lookup( g_columnTypeHash, col_type );
if( pHandler == NULL ) {
g_assert( FALSE );
@@ -1033,6 +1330,9 @@
GUID* pGuid = (GUID*)pObject;
GUID* guid = (GUID*)pValue;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
memcpy( pGuid, guid, sizeof( GUID ) );
}
@@ -1049,6 +1349,10 @@
{
static GUID guid;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( pModel != NULL, NULL );
+ g_return_val_if_fail( row >= 0, NULL );
+
gnc_gda_load_object( be, pModel, row, NULL, &guid, guid_table );
return &guid;
@@ -1066,6 +1370,10 @@
{
static GUID guid;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( pModel != NULL, NULL );
+ g_return_val_if_fail( row >= 0, NULL );
+
gnc_gda_load_object( be, pModel, row, NULL, &guid, tx_guid_table );
return &guid;
@@ -1074,23 +1382,30 @@
void
gnc_gda_load_object( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofIdTypeConst obj_name, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
int col;
QofSetterFunc setter;
col_type_handler_t* pHandler;
- for( col = 0; table[col].col_name != NULL; col++ ) {
- if( (table[col].flags & COL_AUTOINC) != 0 ) {
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ for( col = 0; table_row[col].col_name != NULL; col++ ) {
+ if( (table_row[col].flags & COL_AUTOINC) != 0 ) {
setter = set_autoinc_id;
- } else if( table[col].param_name != NULL ) {
+ } else if( table_row[col].param_name != NULL ) {
setter = qof_class_get_parameter_setter( obj_name,
- table[col].param_name );
+ table_row[col].param_name );
} else {
- setter = table[col].setter;
+ setter = table_row[col].setter;
}
- pHandler = get_handler( table[col].col_type );
- pHandler->load_fn( be, pModel, row, setter, pObject, &table[col] );
+ pHandler = get_handler( table_row[col].col_type );
+ pHandler->load_fn( be, pModel, row, setter, pObject, &table_row[col] );
}
}
@@ -1102,6 +1417,9 @@
GdaQueryTarget* target;
GdaQueryField* allFields;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( table_name != NULL, NULL );
+
/* SELECT */
query = gda_query_new( be->pDict );
gda_query_set_query_type( query, GDA_QUERY_TYPE_SELECT );
@@ -1125,9 +1443,11 @@
gnc_gda_execute_query( const GncGdaBackend* be, GdaQuery* query )
{
GError* error = NULL;
-
GdaObject* ret;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( query != NULL, NULL );
+
ret = gda_query_execute( query, NULL, FALSE, &error );
if( error != NULL ) {
@@ -1141,9 +1461,11 @@
gnc_gda_create_query_from_sql( const GncGdaBackend* be, const gchar* sql )
{
GError* error = NULL;
-
GdaQuery* query;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( sql != NULL, NULL );
+
query = gda_query_new_from_sql( be->pDict, sql, &error );
if( query == NULL ) {
g_critical( "SQL error: %s\n", error->message );
@@ -1157,6 +1479,9 @@
{
GdaQuery* query;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( sql != NULL, NULL );
+
query = gnc_gda_create_query_from_sql( be, sql );
if( query != NULL ) {
return gnc_gda_execute_query( be, query );
@@ -1170,9 +1495,11 @@
{
GError* error = NULL;
int count = 0;
-
GdaObject* ret;
+ g_return_val_if_fail( be != NULL, 0 );
+ g_return_val_if_fail( sql != NULL, 0 );
+
ret = gnc_gda_execute_sql( be, sql );
if( GDA_IS_DATA_MODEL(ret) ) {
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
@@ -1190,9 +1517,11 @@
gnc_gda_execute_query_get_count( const GncGdaBackend* be, GdaQuery* query )
{
int count = 0;
-
GdaObject* ret;
+ g_return_val_if_fail( be != NULL, 0 );
+ g_return_val_if_fail( query != NULL, 0 );
+
ret = gnc_gda_execute_query( be, query );
if( GDA_IS_DATA_MODEL(ret) ) {
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
@@ -1209,6 +1538,12 @@
{
col_type_handler_t* pHandler;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
pHandler = get_handler( table_row->col_type );
pHandler->get_gvalue_query_fn( be, obj_name, pObject, table_row, query );
}
@@ -1221,6 +1556,12 @@
col_type_handler_t* pHandler;
GdaQueryCondition* cond;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( obj_name != NULL );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+ g_return_if_fail( query != NULL );
+
pHandler = get_handler( table_row->col_type );
cond = pHandler->get_gvalue_cond_fn( be, obj_name, pObject, table_row, query );
@@ -1236,6 +1577,12 @@
GdaQuery* query;
int count;
+ g_return_val_if_fail( be != NULL, FALSE );
+ g_return_val_if_fail( table_name != NULL, FALSE );
+ g_return_val_if_fail( obj_name != NULL, FALSE );
+ g_return_val_if_fail( pObject != NULL, FALSE );
+ g_return_val_if_fail( table != NULL, FALSE );
+
/* SELECT * FROM */
query = gnc_gda_create_select_query( be, table_name );
@@ -1259,6 +1606,12 @@
{
GdaQuery* pQuery;
+ g_return_val_if_fail( be != NULL, FALSE );
+ g_return_val_if_fail( table_name != NULL, FALSE );
+ g_return_val_if_fail( obj_name != NULL, FALSE );
+ g_return_val_if_fail( pObject != NULL, FALSE );
+ g_return_val_if_fail( table != NULL, FALSE );
+
if( op == OP_DB_ADD_OR_UPDATE ) {
if( gnc_gda_object_is_it_in_db( be, table_name, obj_name, pObject, table ) ) {
pQuery = gnc_gda_build_update_query( be, table_name, obj_name, pObject, table );
@@ -1292,9 +1645,15 @@
{
GdaQuery* query;
int col;
-
GdaQueryTarget* target;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( table_name != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table != NULL, NULL );
+
+
/* INSERT */
query = gda_query_new( be->pDict );
gda_query_set_query_type( query, GDA_QUERY_TYPE_INSERT );
@@ -1321,9 +1680,14 @@
{
GdaQuery* query;
int col;
-
GdaQueryTarget* target;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( table_name != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table != NULL, NULL );
+
/* UPDATE */
query = gda_query_new( be->pDict );
gda_query_set_query_type( query, GDA_QUERY_TYPE_UPDATE );
@@ -1350,6 +1714,12 @@
GdaQuery* query;
GdaQueryTarget* target;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( table_name != NULL, NULL );
+ g_return_val_if_fail( obj_name != NULL, NULL );
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( table != NULL, NULL );
+
/* DELETE */
query = gda_query_new( be->pDict );
gda_query_set_query_type( query, GDA_QUERY_TYPE_DELETE );
@@ -1374,6 +1744,12 @@
xmlNodePtr array_row, array_value;
gchar* buf;
+ g_return_if_fail( server != NULL );
+ g_return_if_fail( cnn != NULL );
+ g_return_if_fail( array_data != NULL );
+ g_return_if_fail( arg != NULL );
+ g_return_if_fail( dbms_type != NULL );
+
array_row = xmlNewChild( array_data, NULL, "gda_array_row", NULL );
array_value = xmlNewChild( array_row, NULL, "gda_array_value", arg );
xmlSetProp( array_value, "colid", "COLUMN_NAME" );
@@ -1410,8 +1786,12 @@
GdaServerOperation *op;
GdaServerProvider *server;
+ g_return_val_if_fail( cnn != NULL, FALSE );
g_return_val_if_fail( GDA_IS_CONNECTION(cnn), FALSE );
g_return_val_if_fail( gda_connection_is_opened(cnn), FALSE );
+ g_return_val_if_fail( table_name != NULL, FALSE );
+ g_return_val_if_fail( col_table != NULL, FALSE );
+ g_return_val_if_fail( error != NULL, FALSE );
server = gda_connection_get_provider_obj( cnn );
@@ -1491,6 +1871,10 @@
GError* error = NULL;
GdaDictDatabase* db;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( table_name != NULL );
+ g_return_if_fail( col_table != NULL );
+
db = gda_dict_get_database( be->pDict );
table = gda_dict_database_get_table_by_name( db, table_name );
if( !GDA_IS_DICT_TABLE(table) ) {
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -65,8 +65,12 @@
get_root_account_guid( gpointer pObject, const QofParam* param )
{
GNCBook* book = QOF_BOOK(pObject);
- const Account* root = gnc_book_get_root_account( book );
+ const Account* root;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( QOF_IS_BOOK(pObject), NULL );
+
+ root = gnc_book_get_root_account( book );
return (gpointer)qof_instance_get_guid( QOF_INSTANCE(root) );
}
@@ -74,9 +78,14 @@
set_root_account_guid( gpointer pObject, gpointer pValue )
{
GNCBook* book = QOF_BOOK(pObject);
- const Account* root = gnc_book_get_root_account( book );
+ const Account* root;
GUID* guid = (GUID*)pValue;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( QOF_IS_BOOK(pObject) );
+ g_return_if_fail( pValue != NULL );
+
+ root = gnc_book_get_root_account( book );
qof_instance_set_guid( QOF_INSTANCE(root), guid );
}
@@ -84,8 +93,12 @@
get_root_template_guid( gpointer pObject, const QofParam* param )
{
const GNCBook* book = QOF_BOOK(pObject);
- const Account* root = gnc_book_get_template_root( book );
+ const Account* root;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( QOF_IS_BOOK(pObject), NULL );
+
+ root = gnc_book_get_template_root( book );
return (gpointer)qof_instance_get_guid( QOF_INSTANCE(root) );
}
@@ -94,8 +107,13 @@
{
GNCBook* book = QOF_BOOK(pObject);
GUID* guid = (GUID*)pValue;
- Account* root = gnc_book_get_template_root( book );
+ Account* root;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( QOF_IS_BOOK(pObject) );
+ g_return_if_fail( pValue != NULL );
+
+ root = gnc_book_get_template_root( book );
if( root == NULL ) {
root = xaccMallocAccount( book );
xaccAccountBeginEdit( root );
@@ -107,13 +125,17 @@
}
/* ================================================================= */
-static GNCBook*
+static void
load_single_book( GncGdaBackend* be, GdaDataModel* pModel, int row )
{
const GUID* guid;
GUID book_guid;
GNCBook* pBook;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+
guid = gnc_gda_load_guid( be, pModel, row );
book_guid = *guid;
@@ -127,8 +149,6 @@
qof_instance_get_slots( QOF_INSTANCE(pBook) ) );
qof_instance_mark_clean( QOF_INSTANCE(pBook) );
-
- return pBook;
}
static void
@@ -136,8 +156,9 @@
{
static GdaQuery* query;
GdaObject* ret;
- QofBook* pBook = be->primary_book;
+ g_return_if_fail( be != NULL );
+
if( query == NULL ) {
query = gnc_gda_create_select_query( be, BOOK_TABLE );
}
@@ -151,7 +172,7 @@
gnc_gda_save_book( be, QOF_INSTANCE(be->primary_book) );
} else {
// Otherwise, load the 1st book.
- (void)load_single_book( be, pModel, 0 );
+ load_single_book( be, pModel, 0 );
}
}
}
@@ -160,6 +181,8 @@
static void
create_book_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, BOOK_TABLE, col_table );
}
@@ -167,13 +190,16 @@
void
gnc_gda_save_book( GncGdaBackend* be, QofInstance* inst )
{
- GNCBook* pBook = QOF_BOOK(inst);
const GUID* guid;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( QOF_IS_BOOK(inst) );
+
(void)gnc_gda_do_db_operation( be,
qof_instance_get_destroying(inst) ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE,
BOOK_TABLE,
- GNC_ID_BOOK, pBook,
+ GNC_ID_BOOK, inst,
col_table );
// Delete old slot info
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -60,7 +60,7 @@
};
/* ================================================================= */
-static GncBudget*
+static void
load_single_budget( GncGdaBackend* be, GdaDataModel* pModel, int row )
{
const GUID* guid;
@@ -68,6 +68,10 @@
GncBudget* pBudget;
Recurrence* r;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+
guid = gnc_gda_load_guid( be, pModel, row );
budget_guid = *guid;
@@ -83,8 +87,6 @@
qof_instance_get_slots( QOF_INSTANCE(pBudget) ) );
qof_instance_mark_clean( QOF_INSTANCE(pBudget) );
-
- return pBudget;
}
static void
@@ -92,8 +94,9 @@
{
static GdaQuery* query;
GdaObject* ret;
- QofBook* pBook = be->primary_book;
+ g_return_if_fail( be != NULL );
+
if( query == NULL ) {
query = gnc_gda_create_select_query( be, BUDGET_TABLE );
}
@@ -104,7 +107,7 @@
int r;
for( r = 0; r < numRows; r++ ) {
- (void)load_single_budget( be, pModel, r );
+ load_single_budget( be, pModel, r );
}
}
}
@@ -113,6 +116,8 @@
static void
create_budget_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, BUDGET_TABLE, col_table );
}
@@ -123,6 +128,10 @@
GncBudget* pBudget = GNC_BUDGET(inst);
const GUID* guid;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_BUDGET(inst) );
+
(void)gnc_gda_do_db_operation( be,
qof_instance_get_destroying(inst) ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE,
BUDGET_TABLE,
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -91,6 +91,9 @@
{
const gnc_commodity* pCommodity = GNC_COMMODITY(pObject);
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_COMMODITY(pObject), NULL );
+
return (gpointer)gnc_quote_source_get_internal_name(
gnc_commodity_get_quote_source(pCommodity));
}
@@ -102,6 +105,10 @@
const gchar* quote_source_name = (const gchar*)pValue;
gnc_quote_source* quote_source;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_COMMODITY(pObject) );
+ g_return_if_fail( pValue != NULL );
+
quote_source = gnc_quote_source_lookup_by_internal( quote_source_name );
gnc_commodity_set_quote_source( pCommodity, quote_source );
}
@@ -161,6 +168,8 @@
static void
create_commodities_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, COMMODITIES_TABLE, col_table );
}
@@ -170,10 +179,14 @@
{
const GUID* guid;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_COMMODITY(inst) );
+
(void)gnc_gda_do_db_operation( be,
(qof_instance_get_destroying(inst) ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
COMMODITIES_TABLE,
- GNC_ID_COMMODITY, (gnc_commodity*)inst,
+ GNC_ID_COMMODITY, inst,
col_table );
// Delete old slot info
@@ -190,6 +203,9 @@
static gboolean
is_commodity_in_db( GncGdaBackend* be, gnc_commodity* pCommodity )
{
+ g_return_val_if_fail( be != NULL, FALSE );
+ g_return_val_if_fail( pCommodity != NULL, FALSE );
+
return gnc_gda_object_is_it_in_db( be, COMMODITIES_TABLE, GNC_ID_COMMODITY,
pCommodity, col_table );
}
@@ -197,6 +213,9 @@
void
gnc_gda_save_commodity( GncGdaBackend* be, gnc_commodity* pCommodity )
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pCommodity != NULL );
+
if( !is_commodity_in_db( be, pCommodity ) ) {
commit_commodity( be, QOF_INSTANCE(pCommodity) );
}
@@ -207,14 +226,20 @@
static void
load_commodity_guid( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GUID guid;
const GUID* pGuid;
gnc_commodity* commodity = NULL;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
pGuid = NULL;
} else {
@@ -224,8 +249,8 @@
if( pGuid != NULL ) {
commodity = gnc_commodity_find_commodity_by_guid( pGuid, be->primary_book );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, commodity, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, commodity, NULL );
} else {
(*setter)( pObject, (const gpointer)commodity );
}
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -45,14 +45,13 @@
static gpointer get_lot_account( gpointer pObject, const QofParam* param );
static void set_lot_account( gpointer pObject, gpointer pValue );
-static gpointer get_lot_is_closed( gpointer pObject, const QofParam* param );
static void set_lot_is_closed( gpointer pObject, gpointer pValue );
static col_cvt_t col_table[] =
{
- { "guid", CT_GUID, 0, COL_NNUL, "guid" },
- { "account_guid", CT_GUID, 0, COL_NNUL, NULL, NULL, get_lot_account, set_lot_account },
- { "is_closed", CT_STRING, 1, COL_NNUL, NULL, NULL, get_lot_is_closed, set_lot_is_closed },
+ { "guid", CT_GUID, 0, COL_NNUL, "guid" },
+ { "account_guid", CT_GUID, 0, COL_NNUL, NULL, NULL, get_lot_account, set_lot_account },
+ { "is_closed", CT_BOOLEAN, 0, COL_NNUL, NULL, NULL, (QofAccessFunc)gnc_lot_is_closed, set_lot_is_closed },
{ NULL }
};
@@ -61,8 +60,12 @@
get_lot_account( gpointer pObject, const QofParam* param )
{
const GNCLot* lot = GNC_LOT(pObject);
- const Account* pAccount = gnc_lot_get_account( lot );
+ const Account* pAccount;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_LOT(pObject), NULL );
+
+ pAccount = gnc_lot_get_account( lot );
return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pAccount) );
}
@@ -70,37 +73,40 @@
set_lot_account( gpointer pObject, gpointer pValue )
{
GNCLot* lot = GNC_LOT(pObject);
- QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(lot) );
+ QofBook* pBook;
GUID* guid = (GUID*)pValue;
- Account* pAccount = xaccAccountLookup( guid, pBook );
+ Account* pAccount;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_LOT(pObject) );
+ g_return_if_fail( pValue != NULL );
+
+ pBook = qof_instance_get_book( QOF_INSTANCE(lot) );
+ pAccount = xaccAccountLookup( guid, pBook );
xaccAccountInsertLot( pAccount, lot );
}
-static gpointer
-get_lot_is_closed( gpointer pObject, const QofParam* param )
-{
- GNCLot* lot = GNC_LOT(pObject);
- static gboolean is_closed;
-
- is_closed = gnc_lot_is_closed( lot );
- return &is_closed;
-}
-
static void
set_lot_is_closed( gpointer pObject, gpointer pValue )
{
GNCLot* lot = GNC_LOT(pObject);
- const gboolean* pBoolean = (const gboolean*)pValue;
+ gboolean closed = GPOINTER_TO_INT(pValue);
- lot->is_closed = *pBoolean;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_LOT(pObject) );
+
+ lot->is_closed = closed;
}
-static GNCLot*
+static void
load_single_lot( GncGdaBackend* be, GdaDataModel* pModel, int row )
{
GNCLot* lot;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+
lot = gnc_lot_new( be->primary_book );
gnc_gda_load_object( be, pModel, row, GNC_ID_LOT, lot, col_table );
@@ -108,8 +114,6 @@
qof_instance_get_slots( QOF_INSTANCE(lot) ) );
qof_instance_mark_clean( QOF_INSTANCE(lot) );
-
- return lot;
}
static void
@@ -118,6 +122,8 @@
static GdaQuery* query;
GdaObject* ret;
+ g_return_if_fail( be != NULL );
+
if( query == NULL ) {
query = gnc_gda_create_select_query( be, TABLE_NAME );
}
@@ -126,10 +132,9 @@
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
int numRows = gda_data_model_get_n_rows( pModel );
int r;
- GNCLot* lot;
for( r = 0; r < numRows; r++ ) {
- lot = load_single_lot( be, pModel, r );
+ load_single_lot( be, pModel, r );
}
}
}
@@ -138,6 +143,8 @@
static void
create_lots_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
}
@@ -146,12 +153,14 @@
static void
commit_lot( GncGdaBackend* be, QofInstance* inst )
{
- GNCLot* lot = GNC_LOT(inst);
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_LOT(inst) );
(void)gnc_gda_do_db_operation( be,
(qof_instance_get_destroying(inst) ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
TABLE_NAME,
- GNC_ID_LOT, lot,
+ GNC_ID_LOT, inst,
col_table );
// Now, commit any slots
@@ -163,14 +172,20 @@
static void
load_lot_guid( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GUID guid;
const GUID* pGuid;
GNCLot* lot = NULL;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
pGuid = NULL;
} else {
@@ -180,8 +195,8 @@
if( pGuid != NULL ) {
lot = gnc_lot_lookup( pGuid, be->primary_book );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, lot, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, lot, NULL );
} else {
(*setter)( pObject, (const gpointer)lot );
}
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -65,6 +65,10 @@
{
GNCPrice* pPrice;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( pModel != NULL, NULL );
+ g_return_val_if_fail( row >= 0, NULL );
+
pPrice = gnc_price_create( be->primary_book );
gnc_gda_load_object( be, pModel, row, GNC_ID_PRICE, pPrice, col_table );
@@ -79,9 +83,13 @@
{
static GdaQuery* query;
GdaObject* ret;
- QofBook* pBook = be->primary_book;
- GNCPriceDB* pPriceDB = gnc_book_get_pricedb( pBook );
+ QofBook* pBook;
+ GNCPriceDB* pPriceDB;
+ g_return_if_fail( be != NULL );
+
+ pBook = be->primary_book;
+ pPriceDB = gnc_book_get_pricedb( pBook );
if( query == NULL ) {
query = gnc_gda_create_select_query( be, TABLE_NAME );
}
@@ -106,6 +114,8 @@
static void
create_prices_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
}
@@ -116,6 +126,10 @@
{
GNCPrice* pPrice = GNC_PRICE(inst);
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_PRICE(inst) );
+
/* Ensure commodity and currency are in the db */
gnc_gda_save_commodity( be, gnc_price_get_commodity( pPrice ) );
gnc_gda_save_commodity( be, gnc_price_get_currency( pPrice ) );
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -89,6 +89,8 @@
{
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
return (gpointer)pInfo->guid;
}
@@ -104,8 +106,10 @@
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
static guint m;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( pInfo->pRecurrence != NULL, NULL );
+
m = pInfo->pRecurrence->mult;
-
return GUINT_TO_POINTER(m);
}
@@ -115,6 +119,9 @@
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
guint m = GPOINTER_TO_UINT(pValue);
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pInfo->pRecurrence != NULL );
+
pInfo->pRecurrence->mult = m;
}
@@ -123,6 +130,9 @@
{
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( pInfo->pRecurrence != NULL, NULL );
+
return (gpointer)recurrencePeriodTypeToString(
recurrenceGetPeriodType( pInfo->pRecurrence ) );
}
@@ -132,6 +142,10 @@
{
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pInfo->pRecurrence != NULL );
+ g_return_if_fail( pValue != NULL );
+
pInfo->pRecurrence->ptype = recurrencePeriodTypeFromString( (gchar*)pValue );
}
@@ -141,6 +155,9 @@
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
static GDate date;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( pInfo->pRecurrence != NULL, NULL );
+
date = recurrenceGetDate( pInfo->pRecurrence );
return (gpointer)&date;
}
@@ -151,6 +168,10 @@
recurrence_info_t* pInfo = (recurrence_info_t*)pObject;
GDate* date = (GDate*)pValue;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pInfo->pRecurrence != NULL );
+ g_return_if_fail( pValue != NULL );
+
pInfo->pRecurrence->start = *date;
}
@@ -161,6 +182,10 @@
{
recurrence_info_t recurrence_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+ g_return_if_fail( r != NULL );
+
gnc_gda_recurrence_delete( be, guid );
recurrence_info.be = be;
@@ -176,6 +201,9 @@
recurrence_info_t recurrence_info;
GList* l;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+
gnc_gda_recurrence_delete( be, guid );
recurrence_info.be = be;
@@ -192,6 +220,9 @@
{
recurrence_info_t recurrence_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+
recurrence_info.be = be;
recurrence_info.guid = guid;
(void)gnc_gda_do_db_operation( be, OP_DB_DELETE, TABLE_NAME,
@@ -203,6 +234,11 @@
{
recurrence_info_t recurrence_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( r != NULL );
+
recurrence_info.be = be;
recurrence_info.pRecurrence = r;
@@ -216,12 +252,14 @@
GdaObject* ret;
gchar guid_buf[GUID_ENCODING_LENGTH+1];
gchar* field_name;
-
static GdaQuery* query = NULL;
GdaQueryCondition* cond;
GdaQueryField* key_value;
GValue value;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( guid != NULL, NULL );
+
guid_to_string_buff( guid, guid_buf );
/* First time, create the query */
@@ -273,6 +311,10 @@
{
GdaObject* ret;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+ g_return_if_fail( pRecurrence != NULL );
+
ret = gnc_gda_set_recurrences_from_db( be, guid );
if( GDA_IS_DATA_MODEL( ret ) ) {
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
@@ -294,6 +336,10 @@
{
GdaObject* ret;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+ g_return_if_fail( pSchedule != NULL );
+
ret = gnc_gda_set_recurrences_from_db( be, guid );
if( GDA_IS_DATA_MODEL( ret ) ) {
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
@@ -312,6 +358,8 @@
static void
create_recurrence_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
}
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -86,6 +86,9 @@
gboolean autoCreate;
gboolean autoNotify;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_SX(pObject), NULL );
+
xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
return GINT_TO_POINTER(autoCreate);
}
@@ -97,6 +100,9 @@
gboolean autoCreate;
gboolean autoNotify;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_SX(pObject) );
+
xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
autoCreate = GPOINTER_TO_INT(pValue);
xaccSchedXactionSetAutoCreate( pSx, autoCreate, autoNotify );
@@ -109,6 +115,9 @@
gboolean autoCreate;
gboolean autoNotify;
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_SX(pObject), NULL );
+
xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
return GINT_TO_POINTER(autoNotify);
}
@@ -120,6 +129,9 @@
gboolean autoCreate;
gboolean autoNotify;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_SX(pObject) );
+
xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
autoNotify = GPOINTER_TO_INT(pValue);
xaccSchedXactionSetAutoCreate( pSx, autoCreate, autoNotify );
@@ -130,6 +142,9 @@
{
const SchedXaction* pSx = GNC_SX(pObject);
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_SX(pObject), NULL );
+
return (gpointer)xaccAccountGetGUID( pSx->template_acct );
}
@@ -137,10 +152,15 @@
set_template_act_guid( gpointer pObject, gpointer pValue )
{
SchedXaction* pSx = GNC_SX(pObject);
- QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pSx) );
+ QofBook* pBook;
GUID* guid = (GUID*)pValue;
Account* pAcct;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_SX(pObject) );
+ g_return_if_fail( pValue != NULL );
+
+ pBook = qof_instance_get_book( QOF_INSTANCE(pSx) );
pAcct = xaccAccountLookup( guid, pBook );
sx_set_template_account( pSx, pAcct );
}
@@ -154,6 +174,10 @@
SchedXaction* pSx;
GList* schedule = NULL;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( pModel != NULL, NULL );
+ g_return_val_if_fail( row >= 0, NULL );
+
guid = gnc_gda_load_guid( be, pModel, row );
sx_guid = *guid;
@@ -175,8 +199,9 @@
{
static GdaQuery* query;
GdaObject* ret;
- QofBook* pBook = be->primary_book;
+ g_return_if_fail( be != NULL );
+
if( query == NULL ) {
query = gnc_gda_create_select_query( be, SCHEDXACTION_TABLE );
}
@@ -192,7 +217,9 @@
SchedXaction* sx;
sx = load_single_sx( be, pModel, r );
- gnc_sxes_add_sx(sxes, sx);
+ if( sx != NULL ) {
+ gnc_sxes_add_sx(sxes, sx);
+ }
}
}
}
@@ -201,6 +228,8 @@
static void
create_sx_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, SCHEDXACTION_TABLE, col_table );
}
@@ -211,6 +240,10 @@
SchedXaction* pSx = GNC_SX(inst);
const GUID* guid;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_SX(inst) );
+
(void)gnc_gda_do_db_operation( be,
(qof_instance_get_destroying(inst) ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
SCHEDXACTION_TABLE,
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -105,6 +105,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
return (gpointer)pInfo->guid;
}
@@ -119,6 +121,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
return (gpointer)pInfo->path->str;
}
@@ -127,6 +131,9 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
pInfo->path = g_string_new( (gchar*)pValue );
}
@@ -135,6 +142,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
return (gpointer)kvp_value_get_type( pInfo->pKvpValue );
}
@@ -143,6 +152,9 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
pInfo->value_type = (KvpValueType)pValue;
}
@@ -152,6 +164,8 @@
slot_info_t* pInfo = (slot_info_t*)pObject;
static gint64 i64_val;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_GINT64 ) {
i64_val = kvp_value_get_gint64( pInfo->pKvpValue );
return &i64_val;
@@ -165,6 +179,9 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
if( pInfo->value_type == KVP_TYPE_GINT64 ) {
kvp_frame_set_gint64( pInfo->pKvpFrame, pInfo->path->str, *(gint64*)pValue );
}
@@ -175,6 +192,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_STRING ) {
return (gpointer)kvp_value_get_string( pInfo->pKvpValue );
} else {
@@ -187,6 +206,9 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
if( pInfo->value_type == KVP_TYPE_STRING ) {
kvp_frame_set_string( pInfo->pKvpFrame, pInfo->path->str, (const gchar*)pValue );
}
@@ -198,6 +220,8 @@
slot_info_t* pInfo = (slot_info_t*)pObject;
static double d_val;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_DOUBLE ) {
d_val = kvp_value_get_double( pInfo->pKvpValue );
return (gpointer)&d_val;
@@ -211,6 +235,9 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
if( pInfo->value_type == KVP_TYPE_DOUBLE ) {
kvp_frame_set_double( pInfo->pKvpFrame, pInfo->path->str, *(double*)pValue );
}
@@ -221,6 +248,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, gnc_dmy2timespec( 1, 1, 1970 ) );
+
//if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_TIMESPEC ) {
return kvp_value_get_timespec( pInfo->pKvpValue );
}
@@ -230,6 +259,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+
if( pInfo->value_type == KVP_TYPE_TIMESPEC ) {
kvp_frame_set_timespec( pInfo->pKvpFrame, pInfo->path->str, ts );
}
@@ -240,6 +271,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, NULL );
+
if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_GUID ) {
return (gpointer)kvp_value_get_guid( pInfo->pKvpValue );
} else {
@@ -252,6 +285,9 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( pValue != NULL );
+
if( pInfo->value_type == KVP_TYPE_GUID ) {
kvp_frame_set_guid( pInfo->pKvpFrame, pInfo->path->str, (GUID*)pValue );
}
@@ -262,6 +298,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_val_if_fail( pObject != NULL, gnc_numeric_zero() );
+
if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_NUMERIC ) {
return kvp_value_get_numeric( pInfo->pKvpValue );
} else {
@@ -274,6 +312,8 @@
{
slot_info_t* pInfo = (slot_info_t*)pObject;
+ g_return_if_fail( pObject != NULL );
+
if( pInfo->value_type == KVP_TYPE_NUMERIC ) {
kvp_frame_set_numeric( pInfo->pKvpFrame, pInfo->path->str, value );
}
@@ -283,8 +323,13 @@
save_slot( const gchar* key, KvpValue* value, gpointer data )
{
slot_info_t* pSlot_info = (slot_info_t*)data;
- gint curlen = pSlot_info->path->len;
+ gint curlen;
+ g_return_if_fail( key != NULL );
+ g_return_if_fail( value != NULL );
+ g_return_if_fail( data != NULL );
+
+ curlen = pSlot_info->path->len;
pSlot_info->pKvpValue = value;
if( curlen != 0 ) {
g_string_append( pSlot_info->path, "/" );
@@ -307,6 +352,10 @@
{
slot_info_t slot_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+ g_return_if_fail( pFrame != NULL );
+
/* First, delete the old slots for this object */
gnc_gda_slots_delete( be, guid );
@@ -322,6 +371,9 @@
{
slot_info_t slot_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+
slot_info.be = be;
slot_info.guid = guid;
(void)gnc_gda_do_db_operation( be, OP_DB_DELETE, TABLE_NAME,
@@ -333,6 +385,11 @@
{
slot_info_t slot_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pFrame != NULL );
+
slot_info.be = be;
slot_info.pKvpFrame = pFrame;
slot_info.path = NULL;
@@ -351,12 +408,15 @@
GdaObject* ret;
gchar guid_buf[GUID_ENCODING_LENGTH+1];
gchar* field_name;
-
static GdaQuery* query = NULL;
GdaQueryCondition* cond;
GdaQueryField* key_value;
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( guid != NULL );
+ g_return_if_fail( pFrame != NULL );
+
guid_to_string_buff( guid, guid_buf );
/* First time, create the query */
@@ -415,6 +475,8 @@
static void
create_slots_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
}
Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c 2008-01-01 20:07:22 UTC (rev 16779)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c 2008-01-01 20:55:25 UTC (rev 16780)
@@ -113,6 +113,9 @@
const Split* pSplit = GNC_SPLIT(pObject);
static gchar c[2];
+ g_return_val_if_fail( pObject != NULL, NULL );
+ g_return_val_if_fail( GNC_IS_SPLIT(pObject), NULL );
+
c[0] = xaccSplitGetReconcile( pSplit );
c[1] = '\0';
return (gpointer)c;
@@ -124,12 +127,19 @@
Split* pSplit = GNC_SPLIT(pObject);
const gchar* s = (const gchar*)pValue;
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_SPLIT(pObject) );
+ g_return_if_fail( pValue != NULL );
+
xaccSplitSetReconcile( pSplit, s[0] );
}
static void
set_split_reconcile_date( gpointer pObject, Timespec ts )
{
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( GNC_IS_SPLIT(pObject) );
+
xaccSplitSetDateReconciledTS( GNC_SPLIT(pObject), &ts );
}
@@ -137,6 +147,9 @@
retrieve_numeric_value( gpointer pObject, gnc_numeric value )
{
gnc_numeric* pResult = (gnc_numeric*)pObject;
+
+ g_return_if_fail( pObject != NULL );
+
*pResult = value;
}
@@ -151,8 +164,12 @@
static gnc_numeric
get_gnc_numeric_from_row( GncGdaBackend* be, GdaDataModel* model, int row )
{
- gnc_numeric val;
+ gnc_numeric val = gnc_numeric_zero();
+ g_return_val_if_fail( be != NULL, val );
+ g_return_val_if_fail( model != NULL, val );
+ g_return_val_if_fail( row >= 0, val );
+
gnc_gda_load_object( be, model, row, NULL, &val, quantity_table );
return val;
@@ -170,6 +187,9 @@
gnc_numeric bal = gnc_numeric_zero();
GdaObject* ret;
+ g_return_val_if_fail( be != NULL, bal );
+ g_return_val_if_fail( query != NULL, bal );
+
/* Execute the query */
ret = gnc_gda_execute_query( be, query );
@@ -199,6 +219,12 @@
gchar guid_buf[GUID_ENCODING_LENGTH+1];
gchar* sql;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pAccount != NULL );
+ g_return_if_fail( start_balance != NULL );
+ g_return_if_fail( cleared_balance != NULL );
+ g_return_if_fail( reconciled_balance != NULL );
+
guid_to_string_buff( qof_instance_get_guid( pAccount ), guid_buf );
/*
@@ -256,13 +282,17 @@
g_free( sql );
}
-static Split*
+static void
load_single_split( GncGdaBackend* be, GdaDataModel* pModel, int row )
{
const GUID* guid;
GUID split_guid;
Split* pSplit;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+
guid = gnc_gda_load_guid( be, pModel, row );
split_guid = *guid;
@@ -272,20 +302,13 @@
}
/* If the split is dirty, don't overwrite it */
- if( qof_instance_is_dirty( QOF_INSTANCE(pSplit) ) ) {
- return pSplit;
- }
-
- gnc_gda_load_object( be, pModel, row, GNC_ID_SPLIT, pSplit, split_col_table );
-
- gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
+ if( !qof_instance_is_dirty( QOF_INSTANCE(pSplit) ) ) {
+ gnc_gda_load_object( be, pModel, row, GNC_ID_SPLIT, pSplit, split_col_table );
+ gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
qof_instance_get_slots( QOF_INSTANCE(pSplit) ) );
+ }
g_assert( pSplit == xaccSplitLookup( &split_guid, be->primary_book ) );
-
- //qof_instance_mark_clean( QOF_INSTANCE(pSplit) );
-
- return pSplit;
}
static void
@@ -297,6 +320,9 @@
GdaQueryCondition* cond;
GValue value;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( tx_guid != NULL );
+
guid_to_string_buff( tx_guid, guid_buf );
memset( &value, 0, sizeof( GValue ) );
g_value_init( &value, G_TYPE_STRING );
@@ -319,13 +345,17 @@
}
}
-static Transaction*
+static void
load_single_tx( GncGdaBackend* be, GdaDataModel* pModel, int row )
{
const GUID* guid;
GUID tx_guid;
Transaction* pTx;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+
guid = gnc_gda_load_guid( be, pModel, row );
tx_guid = *guid;
@@ -343,8 +373,6 @@
xaccTransCommitEdit( pTx );
g_assert( pTx == xaccTransLookup( &tx_guid, be->primary_book ) );
-
- return pTx;
}
static void
@@ -352,6 +380,9 @@
{
GdaObject* ret;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( query != NULL );
+
ret = gnc_gda_execute_query( be, query );
if( GDA_IS_DATA_MODEL( ret ) ) {
GdaDataModel* pModel = GDA_DATA_MODEL(ret);
@@ -371,6 +402,9 @@
gchar* sql;
gchar guid_buf[GUID_ENCODING_LENGTH+1];
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( tx_guid != NULL );
+
guid_to_string_buff( tx_guid, guid_buf );
sql = g_strdup_printf( "SELECT * FROM %s WHERE guid = %s", TRANSACTION_TABLE, guid_buf );
query = gnc_gda_create_query_from_sql( be, sql );
@@ -381,6 +415,8 @@
static void
create_transaction_tables( GncGdaBackend* be )
{
+ g_return_if_fail( be != NULL );
+
gnc_gda_create_table_if_needed( be, TRANSACTION_TABLE, tx_col_table );
gnc_gda_create_table_if_needed( be, SPLIT_TABLE, split_col_table );
}
@@ -391,6 +427,10 @@
split_info_t* split_info = (split_info_t*)user_data;
Split* pSplit = GNC_SPLIT(data);
+ g_return_if_fail( data != NULL );
+ g_return_if_fail( GNC_IS_SPLIT(data) );
+ g_return_if_fail( user_data != NULL );
+
gnc_gda_slots_delete( split_info->be,
qof_instance_get_guid( QOF_INSTANCE(pSplit) ) );
}
@@ -400,6 +440,9 @@
{
split_info_t split_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pTx != NULL );
+
(void)gnc_gda_do_db_operation( be, OP_DB_DELETE, SPLIT_TABLE,
SPLIT_TABLE, pTx, guid_col_table );
split_info.be = be;
@@ -410,16 +453,17 @@
static void
commit_split( GncGdaBackend* be, QofInstance* inst )
{
- Split* pSplit = GNC_SPLIT(inst);
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
(void)gnc_gda_do_db_operation( be,
(qof_instance_get_destroying(inst) ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
SPLIT_TABLE,
- GNC_ID_SPLIT, pSplit,
+ GNC_ID_SPLIT, inst,
split_col_table );
gnc_gda_slots_save( be,
- qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
- qof_instance_get_slots( QOF_INSTANCE(pSplit) ) );
+ qof_instance_get_guid( inst ),
+ qof_instance_get_slots( inst ) );
}
static void
@@ -428,6 +472,10 @@
split_info_t* split_info = (split_info_t*)user_data;
Split* pSplit = GNC_SPLIT(data);
+ g_return_if_fail( data != NULL );
+ g_return_if_fail( GNC_IS_SPLIT(data) );
+ g_return_if_fail( user_data != NULL );
+
commit_split( split_info->be, QOF_INSTANCE(pSplit) );
}
@@ -436,6 +484,10 @@
{
split_info_t split_info;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( tx_guid != NULL );
+ g_return_if_fail( pSplitList != NULL );
+
split_info.be = be;
split_info.guid = tx_guid;
g_list_foreach( pSplitList, save_split_cb, &split_info );
@@ -447,6 +499,10 @@
Transaction* pTx = GNC_TRANS(inst);
const GUID* guid;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( inst != NULL );
+ g_return_if_fail( GNC_IS_TRANS(inst) );
+
// Ensure the commodity is in the db
gnc_gda_save_commodity( be, xaccTransGetCurrency( pTx ) );
@@ -481,12 +537,16 @@
}
}
-void gnc_gda_transaction_commit_splits( GncGdaBackend* be, Transaction* pTx )
+void
+gnc_gda_transaction_commit_splits( GncGdaBackend* be, Transaction* pTx )
{
SplitList* splits;
Split* s;
QofBackend* qbe = (QofBackend*)be;
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pTx != NULL );
+
splits = xaccTransGetSplitList( pTx );
for( ; splits != NULL; splits = splits->next ) {
s = GNC_SPLIT(splits->data);
@@ -499,13 +559,16 @@
static const GUID*
get_guid_from_query( QofQuery* pQuery )
{
- GList* pOrTerms = qof_query_get_terms( pQuery );
+ GList* pOrTerms;
GList* pAndTerms;
GList* andTerm;
QofQueryTerm* pTerm;
QofQueryPredData* pPredData;
GSList* pParamPath;
+ g_return_val_if_fail( pQuery != NULL, NULL );
+
+ pOrTerms = qof_query_get_terms( pQuery );
pAndTerms = (GList*)pOrTerms->data;
andTerm = pAndTerms->next;
pTerm = (QofQueryTerm*)andTerm->data;
@@ -528,11 +591,13 @@
const GUID* acct_guid;
gchar guid_buf[GUID_ENCODING_LENGTH+1];
gchar* s;
-
-#if 1
GdaQuery* query;
GdaObject* results;
+ g_return_val_if_fail( be != NULL, NULL );
+ g_return_val_if_fail( pQuery != NULL, NULL );
+
+#if 1
acct_guid = get_guid_from_query( pQuery );
guid_to_string_buff( acct_guid, guid_buf );
buf = g_strdup_printf( "SELECT DISTINCT tx_guid FROM %s WHERE account_guid='%s'", SPLIT_TABLE, guid_buf );
@@ -653,8 +718,13 @@
run_split_query( GncGdaBackend* be, gpointer pQuery )
{
GdaQuery* query;
+ const gchar* sql;
+
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pQuery != NULL );
+
#if 1
- const gchar* sql = (const gchar*)pQuery;
+ sql = (const gchar*)pQuery;
query = gnc_gda_create_query_from_sql( be, sql );
#else
@@ -664,8 +734,11 @@
}
static void
-free_split_query( GncGdaBackend* pBackend, gpointer pQuery )
+free_split_query( GncGdaBackend* be, gpointer pQuery )
{
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pQuery != NULL );
+
#if 1
g_free( pQuery );
#else
@@ -677,14 +750,20 @@
static void
load_tx_guid( const GncGdaBackend* be, GdaDataModel* pModel, gint row,
QofSetterFunc setter, gpointer pObject,
- const col_cvt_t* table )
+ const col_cvt_t* table_row )
{
const GValue* val;
GUID guid;
const GUID* pGuid;
Transaction* tx = NULL;
- val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+ g_return_if_fail( be != NULL );
+ g_return_if_fail( pModel != NULL );
+ g_return_if_fail( row >= 0 );
+ g_return_if_fail( pObject != NULL );
+ g_return_if_fail( table_row != NULL );
+
+ val = gda_data_model_get_value_at_col_name( pModel, table_row->col_name, row );
if( gda_value_is_null( val ) ) {
pGuid = NULL;
} else {
@@ -694,8 +773,8 @@
if( pGuid != NULL ) {
tx = xaccTransLookup( pGuid, be->primary_book );
}
- if( table->gobj_param_name != NULL ) {
- g_object_set( pObject, table->gobj_param_name, tx, NULL );
+ if( table_row->gobj_param_name != NULL ) {
+ g_object_set( pObject, table_row->gobj_param_name, tx, NULL );
} else {
(*setter)( pObject, (const gpointer)tx );
}
More information about the gnucash-changes
mailing list