message: Fix corner case in msg_emit().
authorBen Pfaff <blp@gnu.org>
Tue, 19 Jan 2010 00:10:10 +0000 (16:10 -0800)
committerBen Pfaff <blp@gnu.org>
Tue, 19 Jan 2010 00:10:10 +0000 (16:10 -0800)
In most cases, msg_emit() initialized the "where" member of the message
passed in.  However, if msg_init() had not yet been called, it did not do
this.  This fixes that corner case.

In addition, one caller of msg_emit() did not initialize these members.  It
is not necessary for both msg_emit() and its callers to do so, but since
most callers did so, this commit simply makes the remaining caller do so
as well, for consistency.

src/data/data-in.c
src/libpspp/message.c

index 33e369f971da8751f78e29e76f23d230e6e0227d..285c777bca19f42444b4e4fc5766705fa1cf6b5e 100644 (file)
@@ -1202,6 +1202,8 @@ vdata_warning (const struct data_in *i, const char *format, va_list args)
   m.category = MSG_DATA;
   m.severity = MSG_WARNING;
   m.text = ds_cstr (&text);
+  m.where.file_name = NULL;
+  m.where.line_number = -1;
 
   msg_emit (&m);
 }
index 2cd0bff5911ee915c7545503e18f112b4cfd81e1..6b4848a3ef4a135968fb20d91793e32420900cc0 100644 (file)
@@ -109,6 +109,11 @@ msg_emit (struct msg *m)
 {
   if ( s_stream )
     get_msg_location (s_stream, &m->where);
+  else
+    {
+      m->where.file_name = NULL;
+      m->where.line_number = -1;
+    }
 
   if (!messages_disabled)
      msg_handler (m);