X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Ftrim.c;h=4616b431d22cb1303810e8679899514d0589f5bb;hb=915ae62e6caddda59ac7c7b5e373fcb9b8da8a22;hp=00ebcbbe6768700336a41df2425b6d14cca1c221;hpb=e2039bc0694b89d26065899d9ed20f9bb42426f4;p=pspp diff --git a/src/language/data-io/trim.c b/src/language/data-io/trim.c index 00ebcbbe67..4616b431d2 100644 --- a/src/language/data-io/trim.c +++ b/src/language/data-io/trim.c @@ -276,7 +276,7 @@ parse_dict_drop (struct lexer *lexer, struct dictionary *dict) dict_delete_vars (dict, v, nv); free (v); - if (dict_get_var_cnt (dict) == 0) + if (dict_get_n_vars (dict) == 0) { msg (SE, _("Cannot DROP all variables from dictionary.")); return false; @@ -302,12 +302,16 @@ parse_dict_keep (struct lexer *lexer, struct dictionary *dict) dict_reorder_vars (dict, v, nv); /* Delete the remaining variables. */ - if (dict_get_var_cnt (dict) == nv) - return true; - v = xnrealloc (v, dict_get_var_cnt (dict) - nv, sizeof *v); - for (i = nv; i < dict_get_var_cnt (dict); i++) + if (dict_get_n_vars (dict) == nv) + { + free (v); + return true; + } + + v = xnrealloc (v, dict_get_n_vars (dict) - nv, sizeof *v); + for (i = nv; i < dict_get_n_vars (dict); i++) v[i - nv] = dict_get_var (dict, i); - dict_delete_vars (dict, v, dict_get_var_cnt (dict) - nv); + dict_delete_vars (dict, v, dict_get_n_vars (dict) - nv); free (v); return true;