+2007-07-01 John Darrington <john@darrington.wattle.id.au>
+
+ * transformation.c transformation.h (trns_chain_execute): Changed the
+ signature (Patch #6057)
+
2007-06-10 Ben Pfaff <blp@gnu.org>
* casereader-filter.c (casereader_filter_destroy): Make sure to
but proc_commit not yet called. */
}
proc_state;
- size_t cases_written; /* Cases output so far. */
+ casenumber cases_written; /* Cases output so far. */
bool ok; /* Error status. */
}; /* struct dataset */
assert (ds->proc_state == PROC_OPEN);
for (;;)
{
- size_t case_nr;
+ casenumber case_nr;
assert (retval == TRNS_DROP_CASE || retval == TRNS_ERROR);
if (retval == TRNS_ERROR)
/* Execute permanent transformations. */
case_nr = ds->cases_written + 1;
retval = trns_chain_execute (ds->permanent_trns_chain, TRNS_CONTINUE,
- c, &case_nr);
+ c, case_nr);
caseinit_update_left_vars (ds->caseinit, c);
if (retval != TRNS_CONTINUE)
{
if (ds->temporary_trns_chain != NULL)
{
retval = trns_chain_execute (ds->temporary_trns_chain, TRNS_CONTINUE,
- c, &ds->cases_written);
+ c, ds->cases_written);
if (retval != TRNS_CONTINUE)
{
case_destroy (c);
}
/* Executes the given CHAIN of transformations on C,
- passing *CASE_NR as the case number.
- If a transformation modifies *CASE_NR, it will affect the case
- number passed to following transformations.
+ passing CASE_NR as the case number.
Returns the result code that caused the transformations to
terminate, or TRNS_CONTINUE if the transformations finished
due to "falling off the end" of the set of transformations. */
enum trns_result
-trns_chain_execute (struct trns_chain *chain, enum trns_result start,
- struct ccase *c, const size_t *case_nr)
+trns_chain_execute (const struct trns_chain *chain, enum trns_result start,
+ struct ccase *c, casenumber case_nr)
{
size_t i;
for (i = start < 0 ? 0 : start; i < chain->trns_cnt; )
{
struct transformation *trns = &chain->trns[i];
- int retval = trns->execute (trns->aux, c, *case_nr);
+ int retval = trns->execute (trns->aux, c, case_nr);
if (retval == TRNS_CONTINUE)
i++;
else if (retval >= 0)
void trns_chain_append (struct trns_chain *, trns_finalize_func *,
trns_proc_func *, trns_free_func *, void *);
size_t trns_chain_next (struct trns_chain *);
-enum trns_result trns_chain_execute (struct trns_chain *, enum trns_result,
- struct ccase *, const size_t *case_nr);
+enum trns_result trns_chain_execute (const struct trns_chain *, enum trns_result,
+ struct ccase *, casenumber case_nr);
void trns_chain_splice (struct trns_chain *, struct trns_chain *);
struct trns_chain *trns_chain;
enum trns_result restart;
- size_t case_nr; /* Incremented by END CASE transformation. */
+ casenumber case_nr; /* Incremented by END CASE transformation. */
struct caseinit *init;
size_t value_cnt;
caseinit_init_vars (inp->init, c);
inp->restart = trns_chain_execute (inp->trns_chain, inp->restart,
- c, &inp->case_nr);
+ c, inp->case_nr);
assert (is_valid_state (inp->restart));
caseinit_update_left_vars (inp->init, c);
}