Method

GObjectObjectnotify_by_pspec

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.:

  enum
  {
    PROP_0,
    PROP_FOO,
    PROP_LAST
  };

  static GParamSpec *properties[PROP_LAST];

  static void
  my_object_class_init (MyObjectClass *klass)
  {
    properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
                                             0, 100,
                                             50,
                                             G_PARAM_READWRITE);
    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 GParamSpec
 

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

 The data is owned by the caller of the function.