### Struct

# GObject ParamSpecTypeInfo

since: 2.0

#### Description

    struct GParamSpecTypeInfo {
      guint16 instance_size;
      guint16 n_preallocs;
      void (* instance_init) (
        GParamSpec* pspec
      );
      GType value_type;
      void (* finalize) (
        GParamSpec* pspec
      );
      void (* value_set_default) (
        GParamSpec* pspec,
        GValue* value
      );
      gboolean (* value_validate) (
        GParamSpec* pspec,
        GValue* value
      );
      gint (* values_cmp) (
        GParamSpec* pspec,
        const GValue* value1,
        const GValue* value2
      );
    }

This structure is used to provide the type system with the information required to initialize and destruct (finalize) a parameter’s class and instances thereof.

The initialized structure is passed to the `g_param_type_register_static()` The type system will perform a deep copy of this structure, so its memory does not need to be persistent across invocation of g_param_type_register_static().

###### Structure members

`instance_size`

  Size of the instance (object) structure.

`n_preallocs`

  Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now.

`instance_init`

  Location of the instance initialization function (optional).

`value_type`

  The `GType` of values conforming to this `GParamSpec`.

`finalize`

  The instance finalization function (optional).

`value_set_default`

  Resets a `value` to the default value for `pspec` (recommended, the default is g_value_reset()), see g_param_value_set_default().

`value_validate`

  Ensures that the contents of `value` comply with the specifications set out by `pspec` (optional), see g_param_value_validate().

`values_cmp`

  Compares `value1` with `value2` according to `pspec` (recommended, the default is memcmp()), see g_param_values_cmp().

Available since: 2.0