[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] pspp/src/data procedure.c ChangeLog
From: |
Ben Pfaff |
Subject: |
[Pspp-cvs] pspp/src/data procedure.c ChangeLog |
Date: |
Sun, 07 May 2006 05:46:26 +0000 |
CVSROOT: /cvsroot/pspp
Module name: pspp
Branch:
Changes by: Ben Pfaff <address@hidden> 06/05/07 05:46:26
Modified files:
src/data : procedure.c ChangeLog
Log message:
Simplify multipass_procedure().
Fix memory leak.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/pspp/src/data/procedure.c.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/pspp/pspp/src/data/ChangeLog.diff?tr1=1.43&tr2=1.44&r1=text&r2=text
Patches:
Index: pspp/src/data/ChangeLog
diff -u pspp/src/data/ChangeLog:1.43 pspp/src/data/ChangeLog:1.44
--- pspp/src/data/ChangeLog:1.43 Sun May 7 05:44:18 2006
+++ pspp/src/data/ChangeLog Sun May 7 05:46:26 2006
@@ -1,3 +1,18 @@
+Sat May 6 22:45:55 2006 Ben Pfaff <address@hidden>
+
+ * procedure.c (proc_done): Destroy default_dict, to fix memory
+ leak.
+
+Sat May 6 22:44:44 2006 Ben Pfaff <address@hidden>
+
+ Simplify procedure_with_splits().
+
+ * procedure.c (struct split_aux_data): Removed case_count member.
+ (procedure_with_splits) Don't initialize case_count.
+ (split_procedure_case_func) Check whether prev_case is null
+ instead of case_count.
+ (split_procedure_end_func) Ditto.
+
Sat May 6 22:42:23 2006 Ben Pfaff <address@hidden>
* case.c (case_move): Do nothing if dst and src are the same
Index: pspp/src/data/procedure.c
diff -u pspp/src/data/procedure.c:1.8 pspp/src/data/procedure.c:1.9
--- pspp/src/data/procedure.c:1.8 Sat May 6 22:37:30 2006
+++ pspp/src/data/procedure.c Sun May 7 05:46:26 2006
@@ -458,7 +458,6 @@
/* Represents auxiliary data for handling SPLIT FILE. */
struct split_aux_data
{
- size_t case_count; /* Number of cases so far. */
struct ccase prev_case; /* Data in previous case. */
/* Callback functions. */
@@ -498,7 +497,6 @@
struct split_aux_data split_aux;
bool ok;
- split_aux.case_count = 0;
case_nullify (&split_aux.prev_case);
split_aux.begin_func = begin_func;
split_aux.proc_func = proc_func;
@@ -520,10 +518,10 @@
struct split_aux_data *split_aux = split_aux_;
/* Start a new series if needed. */
- if (split_aux->case_count == 0
+ if (case_is_null (&split_aux->prev_case)
|| !equal_splits (c, &split_aux->prev_case))
{
- if (split_aux->case_count > 0 && split_aux->end_func != NULL)
+ if (!case_is_null (&split_aux->prev_case) && split_aux->end_func != NULL)
split_aux->end_func (split_aux->func_aux);
case_destroy (&split_aux->prev_case);
@@ -533,7 +531,6 @@
split_aux->begin_func (&split_aux->prev_case, split_aux->func_aux);
}
- split_aux->case_count++;
return (split_aux->proc_func == NULL
|| split_aux->proc_func (c, split_aux->func_aux));
}
@@ -544,7 +541,7 @@
{
struct split_aux_data *split_aux = split_aux_;
- if (split_aux->case_count > 0 && split_aux->end_func != NULL)
+ if (!case_is_null (&split_aux->prev_case) && split_aux->end_func != NULL)
split_aux->end_func (split_aux->func_aux);
return true;
}
@@ -802,6 +799,7 @@
proc_done (void)
{
discard_variables ();
+ dict_destroy (default_dict);
}
/* Sets SINK as the destination for procedure output from the
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pspp-cvs] pspp/src/data procedure.c ChangeLog,
Ben Pfaff <=