r19459 - gnucash/trunk/src/app-utils - Make sx-instance-model more const-correct. Improve documentation.
Christian Stimming
cstim at code.gnucash.org
Sat Aug 21 16:57:31 EDT 2010
Author: cstim
Date: 2010-08-21 16:57:31 -0400 (Sat, 21 Aug 2010)
New Revision: 19459
Trac: http://svn.gnucash.org/trac/changeset/19459
Modified:
gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
gnucash/trunk/src/app-utils/gnc-sx-instance-model.h
Log:
Make sx-instance-model more const-correct. Improve documentation.
Fix minor memory leak in gnc_sx_get_current_instances(void) - was not
free'ing the GDate of now.
Modified: gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-sx-instance-model.c 2010-08-21 20:57:19 UTC (rev 19458)
+++ gnucash/trunk/src/app-utils/gnc-sx-instance-model.c 2010-08-21 20:57:31 UTC (rev 19459)
@@ -361,7 +361,7 @@
{
GncSxInstances *instances = g_new0(GncSxInstances, 1);
SchedXaction *sx = (SchedXaction*)data;
- GDate *range_end = (GDate*)user_data;
+ const GDate *range_end = (const GDate*)user_data;
GDate creation_end, remind_end;
GDate cur_date;
void *sequence_ctx;
@@ -424,14 +424,14 @@
GncSxInstanceModel*
gnc_sx_get_current_instances(void)
{
- GDate *now = g_date_new();
- g_date_clear(now, 1);
- g_date_set_time_t(now, time(NULL));
- return gnc_sx_get_instances(now, FALSE);
+ GDate now;
+ g_date_clear(&now, 1);
+ g_date_set_time_t(&now, time(NULL));
+ return gnc_sx_get_instances(&now, FALSE);
}
GncSxInstanceModel*
-gnc_sx_get_instances(GDate *range_end, gboolean include_disabled)
+gnc_sx_get_instances(const GDate *range_end, gboolean include_disabled)
{
GList *all_sxes = gnc_book_get_schedxactions(gnc_get_current_book())->sx_list;
GncSxInstanceModel *instances;
@@ -445,7 +445,7 @@
if (include_disabled)
{
- instances->sx_instance_list = gnc_g_list_map(all_sxes, (GncGMapFunc)_gnc_sx_gen_instances, range_end);
+ instances->sx_instance_list = gnc_g_list_map(all_sxes, (GncGMapFunc)_gnc_sx_gen_instances, (gpointer)range_end);
}
else
{
@@ -460,7 +460,7 @@
enabled_sxes = g_list_append(enabled_sxes, sx);
}
}
- instances->sx_instance_list = gnc_g_list_map(enabled_sxes, (GncGMapFunc)_gnc_sx_gen_instances, range_end);
+ instances->sx_instance_list = gnc_g_list_map(enabled_sxes, (GncGMapFunc)_gnc_sx_gen_instances, (gpointer)range_end);
g_list_free(enabled_sxes);
}
@@ -1441,7 +1441,7 @@
}
void
-gnc_sx_summary_print(GncSxSummary *summary)
+gnc_sx_summary_print(const GncSxSummary *summary)
{
g_message("num_instances: %d", summary->num_instances);
g_message("num_to_create: %d", summary->num_to_create_instances);
Modified: gnucash/trunk/src/app-utils/gnc-sx-instance-model.h
===================================================================
--- gnucash/trunk/src/app-utils/gnc-sx-instance-model.h 2010-08-21 20:57:19 UTC (rev 19458)
+++ gnucash/trunk/src/app-utils/gnc-sx-instance-model.h 2010-08-21 20:57:31 UTC (rev 19459)
@@ -20,6 +20,9 @@
* Boston, MA 02110-1301, USA gnu at gnu.org
*/
+/** \file
+ */
+
#ifndef _GNC_SX_INSTANCE_MODEL_H
#define _GNC_SX_INSTANCE_MODEL_H
@@ -113,9 +116,16 @@
GType gnc_sx_instance_model_get_type(void);
+/** Shorthand for get_instances(now, FALSE); */
GncSxInstanceModel* gnc_sx_get_current_instances(void);
-GncSxInstanceModel* gnc_sx_get_instances(GDate *range_end, gboolean include_disabled);
+/** Allocates a new SxInstanceModel and fills it with generated
+ * instances for all scheduled transactions up to the given range_end
+ * date.
+ *
+ * The caller must unref the returned object by
+ * g_object_unref(G_OBJECT(inst_model)); when no longer in use. */
+GncSxInstanceModel* gnc_sx_get_instances(const GDate *range_end, gboolean include_disabled);
/**
* Regenerates and updates the GncSxInstances* for the given SX. Model
@@ -179,6 +189,9 @@
* the caller owns the list and the items.
**/
GList* gnc_sx_instance_model_check_variables(GncSxInstanceModel *model);
+
+/** Really ("effectively") create the transactions from the SX
+ * instances in the given model. */
void gnc_sx_instance_model_effect_change(GncSxInstanceModel *model,
gboolean auto_create_only,
GList **created_transaction_guids,
@@ -200,8 +213,10 @@
* that need either auto-creation or user-interaction.
**/
void gnc_sx_instance_model_summarize(GncSxInstanceModel *model, GncSxSummary *summary);
-void gnc_sx_summary_print(GncSxSummary *summary);
+/** Debug output to trace file */
+void gnc_sx_summary_print(const GncSxSummary *summary);
+
void gnc_sx_get_variables(SchedXaction *sx, GHashTable *var_hash);
int gnc_sx_parse_vars_from_formula(const char *formula, GHashTable *var_hash, gnc_numeric *result);
void gnc_sx_randomize_variables(GHashTable *vars);
More information about the gnucash-changes
mailing list