r19510 - gnucash/trunk/src/app-utils - More const correctness and refactoring in gnc-sx-instance-model.c.
Christian Stimming
cstim at code.gnucash.org
Sun Aug 29 16:37:05 EDT 2010
Author: cstim
Date: 2010-08-29 16:37:05 -0400 (Sun, 29 Aug 2010)
New Revision: 19510
Trac: http://svn.gnucash.org/trac/changeset/19510
Modified:
gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
Log:
More const correctness and refactoring in gnc-sx-instance-model.c.
Modified: gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-sx-instance-model.c 2010-08-29 20:05:34 UTC (rev 19509)
+++ gnucash/trunk/src/app-utils/gnc-sx-instance-model.c 2010-08-29 20:37:05 UTC (rev 19510)
@@ -901,7 +901,7 @@
} SxTxnCreationData;
static gboolean
-_get_template_split_account(GncSxInstance *instance, Split *template_split, Account **split_acct, GList **creation_errors)
+_get_template_split_account(const SchedXaction* sx, const Split *template_split, Account **split_acct, GList **creation_errors)
{
GncGUID *acct_guid;
kvp_frame *split_kvpf;
@@ -917,7 +917,7 @@
{
GString *err = g_string_new("");
g_string_printf(err, "Null account kvp value for SX [%s], cancelling creation.",
- xaccSchedXactionGetName(instance->parent->sx));
+ xaccSchedXactionGetName(sx));
g_critical("%s", err->str);
if (creation_errors != NULL)
*creation_errors = g_list_append(*creation_errors, err);
@@ -934,7 +934,7 @@
guid_to_string_buff((const GncGUID*)acct_guid, guid_str);
err = g_string_new("");
g_string_printf(err, "Unknown account for guid [%s], cancelling SX [%s] creation.",
- guid_str, xaccSchedXactionGetName(instance->parent->sx));
+ guid_str, xaccSchedXactionGetName(sx));
g_critical("%s", err->str);
if (creation_errors != NULL)
*creation_errors = g_list_append(*creation_errors, err);
@@ -947,7 +947,7 @@
}
static void
-_get_sx_formula_value(GncSxInstance *instance, Split *template_split, gnc_numeric *numeric, GList **creation_errors, const char *formula_key)
+_get_sx_formula_value(const SchedXaction* sx, const Split *template_split, gnc_numeric *numeric, GList **creation_errors, const char *formula_key, GHashTable *variable_bindings)
{
kvp_frame *split_kvpf;
kvp_value *kvp_val;
@@ -961,7 +961,11 @@
formula_str = kvp_value_get_string(kvp_val);
if (formula_str != NULL && strlen(formula_str) != 0)
{
- GHashTable *parser_vars = gnc_sx_instance_get_variables_for_parser(instance->variable_bindings);
+ GHashTable *parser_vars = NULL;
+ if (variable_bindings)
+ {
+ parser_vars = gnc_sx_instance_get_variables_for_parser(variable_bindings);
+ }
if (!gnc_exp_parser_parse_separate_vars(formula_str,
numeric,
&parseErrorLoc,
@@ -969,7 +973,7 @@
{
GString *err = g_string_new("");
g_string_printf(err, "Error parsing SX [%s] key [%s]=formula [%s] at [%s]: %s",
- xaccSchedXactionGetName(instance->parent->sx),
+ xaccSchedXactionGetName(sx),
formula_key,
formula_str,
parseErrorLoc,
@@ -989,15 +993,15 @@
}
static void
-_get_credit_formula_value(GncSxInstance *instance, Split *template_split, gnc_numeric *credit_num, GList **creation_errors)
+_get_credit_formula_value(GncSxInstance *instance, const Split *template_split, gnc_numeric *credit_num, GList **creation_errors)
{
- _get_sx_formula_value(instance, template_split, credit_num, creation_errors, GNC_SX_CREDIT_FORMULA);
+ _get_sx_formula_value(instance->parent->sx, template_split, credit_num, creation_errors, GNC_SX_CREDIT_FORMULA, instance->variable_bindings);
}
static void
-_get_debit_formula_value(GncSxInstance *instance, Split *template_split, gnc_numeric *debit_num, GList **creation_errors)
+_get_debit_formula_value(GncSxInstance *instance, const Split *template_split, gnc_numeric *debit_num, GList **creation_errors)
{
- _get_sx_formula_value(instance, template_split, debit_num, creation_errors, GNC_SX_DEBIT_FORMULA);
+ _get_sx_formula_value(instance->parent->sx, template_split, debit_num, creation_errors, GNC_SX_DEBIT_FORMULA, instance->variable_bindings);
}
static gboolean
@@ -1053,7 +1057,7 @@
txn_splits && template_splits;
txn_splits = txn_splits->next, template_splits = template_splits->next)
{
- Split *template_split;
+ const Split *template_split;
Account *split_acct;
gnc_commodity *split_cmdty = NULL;
@@ -1063,7 +1067,7 @@
template_split = (Split*)template_splits->data;
copying_split = (Split*)txn_splits->data;
- if (!_get_template_split_account(creation_data->instance, template_split, &split_acct, creation_data->creation_errors))
+ if (!_get_template_split_account(creation_data->instance->parent->sx, template_split, &split_acct, creation_data->creation_errors))
{
err_flag = TRUE;
break;
More information about the gnucash-changes
mailing list