Add UP_CAST macro, for safer casting from contained data to its container.
[pspp] / src / ui / terminal / read-line.c
index 5c9baa5bb1aee0d6398ca45191b3aab442d0c92c..f85e4e76b17a2aef2e9ca0c8aac27d8296341fcd 100644 (file)
@@ -31,6 +31,7 @@
 #include <data/file-name.h>
 #include <data/settings.h>
 #include <language/command.h>
+#include <libpspp/cast.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
 #include <libpspp/version.h>
@@ -107,8 +108,7 @@ static bool
 read_interactive (struct getl_interface *s,
                   struct string *line)
 {
-  struct readln_source *is  =
-    (struct readln_source *) s ;
+  struct readln_source *is  = UP_CAST (s, struct readln_source, parent);
 
   return is->interactive_func (line, prompt_get_style ());
 }