projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak in MCONVERT
[pspp]
/
src
/
language
/
xforms
/
recode.c
diff --git
a/src/language/xforms/recode.c
b/src/language/xforms/recode.c
index 4f8acf6bbb9d1f05db5cdf707eafd9787c3dd306..f1834cc8a5fb09daffa0a1eb68b4070e781d084e 100644
(file)
--- a/
src/language/xforms/recode.c
+++ b/
src/language/xforms/recode.c
@@
-158,7
+158,7
@@
cmd_recode (struct lexer *lexer, struct dataset *ds)
as the widest destination variable. */
if (trns->dst_type == VAL_STRING)
{
as the widest destination variable. */
if (trns->dst_type == VAL_STRING)
{
- if (
! enlarge_dst_widths (trns))
+ if (! enlarge_dst_widths (trns))
{
recode_trns_free (trns);
return CMD_FAILURE;
{
recode_trns_free (trns);
return CMD_FAILURE;
@@
-667,7
+667,8
@@
find_src_string (struct recode_trns *trns, const uint8_t *value,
char *error;
error = data_in (ss_buffer (CHAR_CAST_BUG (char *, value), width),
char *error;
error = data_in (ss_buffer (CHAR_CAST_BUG (char *, value), width),
- C_ENCODING, FMT_F, &uv, 0, encoding);
+ C_ENCODING, FMT_F, settings_get_fmt_settings (),
+ &uv, 0, encoding);
match = error == NULL;
free (error);
match = error == NULL;
free (error);
@@
-709,7
+710,7
@@
recode_trns_proc (void *trns_, struct ccase **c, casenumber case_idx UNUSED)
if (trns->dst_type == VAL_NUMERIC)
{
if (trns->dst_type == VAL_NUMERIC)
{
- double *dst =
&case_data_rw (*c, dst_var)->f
;
+ double *dst =
case_num_rw (*c, dst_var)
;
if (out != NULL)
*dst = !out->copy_input ? out->value.f : case_num (*c, src_var);
else if (trns->src_vars != trns->dst_vars)
if (out != NULL)
*dst = !out->copy_input ? out->value.f : case_num (*c, src_var);
else if (trns->src_vars != trns->dst_vars)