[glib/gobject-speedup8] Avoid g_param_spec_get_redirect_target
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/gobject-speedup8] Avoid g_param_spec_get_redirect_target
- Date: Mon, 6 Jun 2022 15:48:54 +0000 (UTC)
commit c6c5681f7764faf165adb8ae5c1368f16466befa
Author: Matthias Clasen <mclasen redhat com>
Date: Thu May 19 21:00:37 2022 -0400
Avoid g_param_spec_get_redirect_target
Inline the getting of the redirect target.
This is a rare thing, and the calls were
showing up in profiles.
gobject/gobject.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
---
diff --git a/gobject/gobject.c b/gobject/gobject.c
index 3348426a84..0fb20c00f7 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -1324,9 +1324,8 @@ g_object_notify_by_spec_internal (GObject *object,
if (G_UNLIKELY (~pspec->flags & G_PARAM_READABLE))
return;
- redirected = g_param_spec_get_redirect_target (pspec);
- if (redirected != NULL)
- pspec = redirected;
+ if (((GTypeInstance *)pspec)->g_class->g_type == G_TYPE_PARAM_OVERRIDE)
+ pspec = ((GParamSpecOverride *)pspec)->overridden;
if (pspec != NULL)
{
@@ -1548,7 +1547,6 @@ object_get_property (GObject *object,
{
GObjectClass *class = g_type_class_peek (pspec->owner_type);
guint param_id = PARAM_SPEC_PARAM_ID (pspec);
- GParamSpec *redirect;
if (class == NULL)
{
@@ -1557,9 +1555,8 @@ object_get_property (GObject *object,
return;
}
- redirect = g_param_spec_get_redirect_target (pspec);
- if (redirect)
- pspec = redirect;
+ if (((GTypeInstance *)pspec)->g_class->g_type == G_TYPE_PARAM_OVERRIDE)
+ pspec = ((GParamSpecOverride *)pspec)->overridden;
consider_issuing_property_deprecation_warning (pspec);
@@ -1575,7 +1572,6 @@ object_set_property (GObject *object,
GObjectClass *class = g_type_class_peek (pspec->owner_type);
GParamSpecClass *pclass;
guint param_id = PARAM_SPEC_PARAM_ID (pspec);
- GParamSpec *redirect;
if (G_UNLIKELY (class == NULL))
{
@@ -1584,9 +1580,8 @@ object_set_property (GObject *object,
return;
}
- redirect = g_param_spec_get_redirect_target (pspec);
- if (redirect)
- pspec = redirect;
+ if (((GTypeInstance *)pspec)->g_class->g_type == G_TYPE_PARAM_OVERRIDE)
+ pspec = ((GParamSpecOverride *)pspec)->overridden;
pclass = G_PARAM_SPEC_GET_CLASS (pspec);
if (g_value_type_compatible (G_VALUE_TYPE (value), pspec->value_type) &&
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]