X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fexpressions%2Fevaluate.c;h=09f237e0cd4e3664a0a57353ce2b0f0d2292becf;hb=9333137c2283f783d1ea493c41797e7a0a8b0d14;hp=9c809fac4cd22bc3d5950bd990aa118371bb6921;hpb=8b37609fc39ebaed47d9d07520d2e2e04f99f734;p=pspp diff --git a/src/language/expressions/evaluate.c b/src/language/expressions/evaluate.c index 9c809fac4c..09f237e0cd 100644 --- a/src/language/expressions/evaluate.c +++ b/src/language/expressions/evaluate.c @@ -192,13 +192,6 @@ cmd_debug_evaluate (struct lexer *lexer, struct dataset *dsother UNUSED) free (name); name = NULL; - if (c == NULL) - c = case_create (dict_get_proto (d)); - else - c = case_unshare_and_resize (c, dict_get_proto (d)); - - *case_data_rw (c, v) = value; - if (lex_match_id (lexer, "MISSING")) { struct missing_values mv; @@ -208,6 +201,13 @@ cmd_debug_evaluate (struct lexer *lexer, struct dataset *dsother UNUSED) mv_destroy (&mv); } + if (c == NULL) + c = case_create (dict_get_proto (d)); + else + c = case_unshare_and_resize (c, dict_get_proto (d)); + value_swap (case_data_rw (c, v), &value); + value_destroy (&value, width); + if (!lex_force_match (lexer, T_RPAREN)) goto done; } @@ -255,6 +255,7 @@ cmd_debug_evaluate (struct lexer *lexer, struct dataset *dsother UNUSED) switch (expr->type) { case OP_number: + case OP_num_vec_elem: { double d = expr_evaluate_num (expr, c, 0); if (d == SYSMIS)