Made case_{reader,writer}_class structures const.
[pspp-builds.git] / src / data / gnumeric-reader.c
index f402ef1117d9a6a7eb76c348e640f494fc928bdd..418d63c2d05dc85f2cd993687e6b036dc7eee26c 100644 (file)
@@ -63,7 +63,7 @@ static void gnm_file_casereader_destroy (struct casereader *, void *);
 static bool gnm_file_casereader_read (struct casereader *, void *,
                                      struct ccase *);
 
-static struct casereader_class gnm_file_casereader_class =
+static const struct casereader_class gnm_file_casereader_class =
   {
     gnm_file_casereader_read,
     gnm_file_casereader_destroy,
@@ -551,7 +551,7 @@ gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict)
              xmlChar *attr =
                xmlTextReaderGetAttribute (r->xtr, _xml ("ValueType"));
 
-             if ( 60 !=  _xmlchar_to_int (attr))
+             if ( NULL == attr || 60 !=  _xmlchar_to_int (attr))
                var_spec [idx].width = 0;
 
              free (attr);
@@ -633,6 +633,7 @@ gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict)
     }
 
   free (var_spec);
+  dict_destroy (*dict);
 
   gnm_file_casereader_destroy (NULL, r);