projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
message: Make msg_emit() take full ownership of its argument.
[pspp]
/
src
/
language
/
data-io
/
data-parser.c
diff --git
a/src/language/data-io/data-parser.c
b/src/language/data-io/data-parser.c
index 6de88b170de8400fdd37215dedc4d736bcc17754..03c6dbbb0ea36a421a956498f2fb4470c14771a3 100644
(file)
--- a/
src/language/data-io/data-parser.c
+++ b/
src/language/data-io/data-parser.c
@@
-496,21
+496,23
@@
parse_error (const struct dfm_reader *reader, const struct field *field,
int first_column, int last_column, char *error)
{
int line_number = dfm_get_line_number (reader);
int first_column, int last_column, char *error)
{
int line_number = dfm_get_line_number (reader);
- const struct msg_location location = {
- .file_name = CONST_CAST (char *, dfm_get_file_name (reader)),
+ struct msg_location *location = xmalloc (sizeof *location);
+ *location = (struct msg_location) {
+ .file_name = xstrdup (dfm_get_file_name (reader)),
.first_line = line_number,
.last_line = line_number + 1,
.first_column = first_column,
.last_column = last_column,
};
.first_line = line_number,
.last_line = line_number + 1,
.first_column = first_column,
.last_column = last_column,
};
- struct msg m = {
+ struct msg *m = xmalloc (sizeof *m);
+ *m = (struct msg) {
.category = MSG_C_DATA,
.severity = MSG_S_WARNING,
.category = MSG_C_DATA,
.severity = MSG_S_WARNING,
- .location =
CONST_CAST (struct msg_location *, &location)
,
+ .location =
location
,
.text = xasprintf (_("Data for variable %s is not valid as format %s: %s"),
field->name, fmt_name (field->format.type), error),
};
.text = xasprintf (_("Data for variable %s is not valid as format %s: %s"),
field->name, fmt_name (field->format.type), error),
};
- msg_emit (
&
m);
+ msg_emit (m);
free (error);
}
free (error);
}