perl-module: Init and destroy for long strings in set_missing_values().
[pspp] / perl-module / PSPP.xs
index f6655b8ded0dbf8d24266a47c3cf6858e4244822..c563b40f6330785c48f42d1efa30749b8d4345a1 100644 (file)
@@ -412,12 +412,15 @@ INIT:
   croak ("No more than 3 missing values are permitted");
 
  for (i = 0; i < items - 1; ++i)
-   scalar_to_value (&val[i], ST(i+1), var);
+   make_value_from_scalar (&val[i], ST(i+1), var);
 CODE:
  struct missing_values mv;
  mv_init (&mv, var_get_width (var));
  for (i = 0 ; i < items - 1; ++i )
-   mv_add_value (&mv, &val[i]);
+   {
+     mv_add_value (&mv, &val[i]);
+     value_destroy (&val[i], var_get_width (var));
+   }
  var_set_missing_values (var, &mv);