Fix memory leaks parsing string expressions
[pspp-builds.git] / src / language / expressions / parse.c
index ed5a07093c712b3b034b82f71d6af1fbdc4db0fd..3124c100a19e4c8922916fcda501ec2c0db058b1 100644 (file)
@@ -897,8 +897,8 @@ parse_primary (struct lexer *lexer, struct expression *e)
         dict_encoding = (e->ds != NULL
                          ? dict_get_encoding (dataset_dict (e->ds))
                          : "UTF-8");
-        s = recode_string (dict_encoding, "UTF-8", lex_tokcstr (lexer),
-                           ss_length (lex_tokss (lexer)));
+        s = recode_string_pool (dict_encoding, "UTF-8", lex_tokcstr (lexer),
+                           ss_length (lex_tokss (lexer)), e->expr_pool);
         node = expr_allocate_string (e, ss_cstr (s));
 
        lex_get (lexer);
@@ -1268,8 +1268,7 @@ parse_function (struct lexer *lexer, struct expression *e)
           break;
         else if (!lex_match (lexer, T_COMMA))
           {
-            lex_error (lexer, _("expecting `,' or `)' invoking %s function"),
-                       first->name);
+            lex_error_expecting (lexer, "`,'", "`)'", NULL_SENTINEL);
             goto fail;
           }
       }