/* Returns: (array length=n_properties) (transfer container): an array of #GParamSpec* which should be freed after use  */
GParamSpec** g_object_class_list_properties(GObjectClass *class, guint *n_properties_p)
/* Returns: (array length=n_properties) (transfer container): an array of #GParamSpec* which should be freed after use  */
GParamSpec** g_object_class_list_properties(GObjectClass *class, guint *n_properties_p)
{
  GParamSpec **pspecs;
  guint n;
  g_return_val_if_fail (G_IS_OBJECT_CLASS (class), NULL);
  pspecs = g_param_spec_pool_list (pspec_pool,
				   G_OBJECT_CLASS_TYPE (class),
				   &n);
  if (n_properties_p)
    *n_properties_p = n;
  return pspecs;
}