Reference count struct dictionary.
[pspp] / src / language / data-io / get-data.c
index a0608f6dd3724ae172b6298b9cefda89f8316956..8a58be434c71a6b61de8497bb255458fd3d3daf5 100644 (file)
@@ -599,7 +599,13 @@ parse_get_txt (struct lexer *lexer, struct dataset *ds)
           lex_get (lexer);
         }
 
-      name = xstrdup (lex_tokcstr (lexer));
+      const char * tstr = lex_tokcstr (lexer);
+      if (tstr == NULL)
+       {
+         lex_error (lexer, NULL);
+         goto error;
+       }
+      name = xstrdup (tstr);
       if (!lex_force_id (lexer)
           || !dict_id_is_valid (dict, name, true))
        {
@@ -680,7 +686,7 @@ parse_get_txt (struct lexer *lexer, struct dataset *ds)
 
  error:
   data_parser_destroy (parser);
-  dict_destroy (dict);
+  dict_unref (dict);
   fh_unref (fh);
   free (name);
   free (encoding);