psppire-delimited-text: Clear entire 'cache_starts' buffer.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 24 Sep 2017 02:45:24 +0000 (19:45 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 24 Sep 2017 02:45:24 +0000 (19:45 -0700)
The buffer is an array of 512 elements, not 512 bytes.

Found by GCC 7.2.

src/ui/gui/psppire-delimited-text.c

index dd13f1c384edf73a93f83027683a431ee39fe44c..dd3715f6b97bb68a36bfefb855d980788daf9ed2 100644 (file)
@@ -108,7 +108,7 @@ count_delims (PsppireDelimitedText *tf)
 static void
 cache_invalidate (PsppireDelimitedText *tf)
 {
-  memset (tf->cache_starts, 0, 512);
+  memset (tf->cache_starts, 0, sizeof tf->cache_starts);
   if (tf->const_cache.string)
     {
       ss_dealloc (&tf->const_cache);
@@ -370,7 +370,7 @@ split_row_into_fields (PsppireDelimitedText *file, gint n)
       return;
     }
 
-  memset (file->cache_starts, 0, 512);
+  memset (file->cache_starts, 0, sizeof file->cache_starts);
   /* Cache miss */
   if (file->const_cache.string)
     {
@@ -583,7 +583,7 @@ psppire_delimited_text_init (PsppireDelimitedText *text_file)
   text_file->const_cache.string = NULL;
   text_file->const_cache.length = 0;
   text_file->cache_row = -1;
-  memset (text_file->cache_starts, 0, 512);
+  memset (text_file->cache_starts, 0, sizeof text_file->cache_starts);
 
   text_file->max_delimiters = 0;