supply g_memdup2() for glib before 2.68.
[pspp] / src / ui / gui / psppire-val-chooser.c
index 09c0ec35d044e3a3dbd56b46b43931ada560707d..543fb3f246ab7a9160316763e1519a3aece260cf 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2011, 2014  Free Software Foundation
+   Copyright (C) 2011, 2014, 2022  Free Software Foundation
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 #include "psppire-val-chooser.h"
 
 #include "libpspp/str.h"
-
+#include "ui/gui/glibfix.h"
 
 #include "ui/syntax-gen.h"
 
 #define _(msgid) gettext (msgid)
 #define N_(msgid) msgid
 
-static void psppire_val_chooser_base_finalize (PsppireValChooserClass *, gpointer);
-static void psppire_val_chooser_base_init     (PsppireValChooserClass *class);
 static void psppire_val_chooser_class_init    (PsppireValChooserClass *class);
 static void psppire_val_chooser_init          (PsppireValChooser      *vc);
 
 static void psppire_val_chooser_realize       (GtkWidget *w);
 
-
-
-GType
-psppire_val_chooser_get_type (void)
-{
-  static GType psppire_val_chooser_type = 0;
-
-  if (!psppire_val_chooser_type)
-    {
-      static const GTypeInfo psppire_val_chooser_info =
-      {
-       sizeof (PsppireValChooserClass),
-       (GBaseInitFunc) psppire_val_chooser_base_init,
-        (GBaseFinalizeFunc) psppire_val_chooser_base_finalize,
-       (GClassInitFunc)psppire_val_chooser_class_init,
-       (GClassFinalizeFunc) NULL,
-       NULL,
-        sizeof (PsppireValChooser),
-       0,
-       (GInstanceInitFunc) psppire_val_chooser_init,
-      };
-
-      psppire_val_chooser_type =
-       g_type_register_static (GTK_TYPE_FRAME, "PsppireValChooser",
-                               &psppire_val_chooser_info, 0);
-    }
-
-  return psppire_val_chooser_type;
-}
-
+G_DEFINE_TYPE (PsppireValChooser, psppire_val_chooser, GTK_TYPE_FRAME)
 
 static void
 psppire_val_chooser_finalize (GObject *object)
@@ -145,6 +114,7 @@ psppire_val_chooser_get_property (GObject         *object,
       break;
     case PROP_IS_STRING:
       g_value_set_boolean (value, vr->input_var_is_string);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -158,6 +128,8 @@ static void
 psppire_val_chooser_class_init (PsppireValChooserClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+  object_class->finalize = psppire_val_chooser_finalize;
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
 
   GParamSpec *is_string_spec =
@@ -192,24 +164,6 @@ psppire_val_chooser_class_init (PsppireValChooserClass *class)
 }
 
 
-static void
-psppire_val_chooser_base_init (PsppireValChooserClass *class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-  object_class->finalize = psppire_val_chooser_finalize;
-}
-
-
-
-static void
-psppire_val_chooser_base_finalize (PsppireValChooserClass *class,
-                                gpointer class_data)
-{
-
-}
-
-
 /* Set the focus of B to follow the sensitivity of A */
 static void
 focus_follows_sensitivity (GtkWidget *a, GParamSpec *pspec, GtkWidget *b)
@@ -408,15 +362,6 @@ psppire_val_chooser_init (PsppireValChooser *vr)
   gtk_widget_show_all (grid);
 }
 
-
-GtkWidget*
-psppire_val_chooser_new (void)
-{
-  return GTK_WIDGET (g_object_new (psppire_val_chooser_get_type (), NULL));
-}
-
-
-
 static void
 psppire_val_chooser_realize (GtkWidget *w)
 {
@@ -439,7 +384,7 @@ psppire_val_chooser_realize (GtkWidget *w)
 static struct old_value *
 old_value_copy (struct old_value *ov)
 {
-  struct old_value *copy = g_memdup (ov, sizeof (*copy));
+  struct old_value *copy = g_memdup2 (ov, sizeof (*copy));
 
   if (ov->type == OV_STRING)
     copy->v.s = g_strdup (ov->v.s);