Method

GObjectObjectnotify_by_pspec

since: 2.26

Declaration

void
g_object_notify_by_pspec (
  GObject* object,
  GParamSpec* pspec
)

Description

Emits a “notify” signal for the property specified by pspec on object.

This function omits the property name lookup, hence it is faster than g_object_notify().

One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:

  typedef enum
  {
    PROP_FOO = 1,
    PROP_LAST
  } MyObjectProperty;

  static GParamSpec *properties[PROP_LAST];

  static void
  my_object_class_init (MyObjectClass *klass)
  {
    properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
                                             0, 100,
                                             50,
                                             G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
    g_object_class_install_property (gobject_class,
                                     PROP_FOO,
                                     properties[PROP_FOO]);
  }

and then notify a change on the “foo” property with:

  g_object_notify_by_pspec (self, properties[PROP_FOO]);

Available since: 2.26

Parameters

pspec

Type: GParamSpec

The GParamSpec of a property installed on the class of object.

The data is owned by the caller of the function.