casereader: Make parameter to casereader_count_cases const. fc11-i386-build70 fc11-x64-build67 lenny-x64-build91 sid-i386-build137
authorBen Pfaff <blp@gnu.org>
Tue, 22 Dec 2009 01:11:47 +0000 (17:11 -0800)
committerBen Pfaff <blp@gnu.org>
Tue, 5 Jan 2010 05:05:50 +0000 (21:05 -0800)
casereader_count_cases does not conceptually modify its argument, since
there is no way for the client to observe the difference (other than
through improved performance).  So there is no need for the parameter to
be const.

src/data/casereader.c
src/data/casereader.h

index 57afff844d251acc9bbffbb40f1b9eb9c7232986..97b7ceff3d1b7eb19e8ac6243aef08eb961a0f6b 100644 (file)
@@ -258,7 +258,8 @@ casereader_get_case_cnt (struct casereader *reader)
 }
 
 static casenumber
-casereader_count_cases__ (struct casereader *reader, casenumber max_cases)
+casereader_count_cases__ (const struct casereader *reader,
+                          casenumber max_cases)
 {
   struct casereader *clone;
   casenumber n_cases;
@@ -280,10 +281,13 @@ casereader_count_cases__ (struct casereader *reader, casenumber max_cases)
    of the contents of a clone of READER.  Thus, the return value
    is always correct in the absence of I/O errors. */
 casenumber
-casereader_count_cases (struct casereader *reader)
+casereader_count_cases (const struct casereader *reader)
 {
   if (reader->case_cnt == CASENUMBER_MAX)
-    reader->case_cnt = casereader_count_cases__ (reader, CASENUMBER_MAX);
+    {
+      struct casereader *reader_rw = CONST_CAST (struct casereader *, reader);
+      reader_rw->case_cnt = casereader_count_cases__ (reader, CASENUMBER_MAX);
+    }
   return reader->case_cnt;
 }
 
index a78afaeb27096974107ff1b17409e43318929e37..f2231e2d88984576e39e712427d3dfa4e530f889 100644 (file)
@@ -77,7 +77,7 @@ void casereader_force_error (struct casereader *);
 const struct taint *casereader_get_taint (const struct casereader *);
 
 casenumber casereader_get_case_cnt (struct casereader *);
-casenumber casereader_count_cases (struct casereader *);
+casenumber casereader_count_cases (const struct casereader *);
 void casereader_truncate (struct casereader *, casenumber);
 const struct caseproto *casereader_get_proto (const struct casereader *);