[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] pspp/src/data casereader.c [simpler-proc]
From: |
Ben Pfaff |
Subject: |
[Pspp-cvs] pspp/src/data casereader.c [simpler-proc] |
Date: |
Mon, 23 Apr 2007 01:52:29 +0000 |
CVSROOT: /cvsroot/pspp
Module name: pspp
Branch: simpler-proc
Changes by: Ben Pfaff <blp> 07/04/23 01:52:29
Modified files:
src/data : casereader.c
Log message:
Drop "eof" member of struct casereader: case_cnt can do double duty.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casereader.c?cvsroot=pspp&only_with_tag=simpler-proc&r1=1.1.2.3&r2=1.1.2.4
Patches:
Index: casereader.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/Attic/casereader.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.3 -r1.1.2.4
--- casereader.c 14 Apr 2007 23:01:29 -0000 1.1.2.3
+++ casereader.c 23 Apr 2007 01:52:29 -0000 1.1.2.4
@@ -39,10 +39,8 @@
struct casereader
{
- bool eof;
size_t value_cnt;
casenumber case_cnt;
- //casenumber next_case_idx;
const struct casereader_class *class;
void *aux;
};
@@ -64,7 +62,6 @@
{
struct casereader *reader = xmalloc (sizeof *reader);
assert (class->destroy != NULL);
- reader->eof = false;
reader->value_cnt = value_cnt;
reader->case_cnt = case_cnt;
reader->class = class;
@@ -129,15 +126,16 @@
bool
casereader_read (struct casereader *reader, struct ccase *c)
{
- // FIXME: adjust case_cnt
- if (!reader->eof && reader->class->read (reader, reader->aux, c))
+ if (reader->case_cnt != 0 && reader->class->read (reader, reader->aux, c))
{
//assert (case_get_value_cnt (c) == reader->value_cnt);
+ if (reader->case_cnt != CASENUMBER_INVALID)
+ reader->case_cnt--;
return true;
}
else
{
- reader->eof = true;
+ reader->case_cnt = 0;
case_nullify (c);
return false;
}