[gimp] libgimp: remove redundant validation code from gimpparamspecs.c
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: remove redundant validation code from gimpparamspecs.c
- Date: Wed, 4 Sep 2019 14:36:32 +0000 (UTC)
commit 18bdf52a0b984c68bd0a76992343440a431fe1b7
Author: Michael Natterer <mitch gimp org>
Date: Wed Sep 4 16:34:24 2019 +0200
libgimp: remove redundant validation code from gimpparamspecs.c
No GimpParamSpecItem subclass needs its own validate function,
checking against pspec->value_type and gimp_item_is_vaid() in
gimp_param_item_validate() is good enough, no item ID can change its
type during the lifetime of the proxy.
libgimp/gimpparamspecs.c | 182 +++++------------------------------------------
1 file changed, 19 insertions(+), 163 deletions(-)
---
diff --git a/libgimp/gimpparamspecs.c b/libgimp/gimpparamspecs.c
index 3bc3e69019..4990aab032 100644
--- a/libgimp/gimpparamspecs.c
+++ b/libgimp/gimpparamspecs.c
@@ -192,7 +192,7 @@ gimp_param_item_validate (GParamSpec *pspec,
if (! ispec->none_ok && item == NULL)
return TRUE;
- if (item && (! GIMP_IS_ITEM (item) ||
+ if (item && (! g_type_is_a (G_OBJECT_TYPE (item), pspec->value_type) ||
! gimp_item_is_valid (item)))
{
g_object_unref (item);
@@ -242,10 +242,8 @@ gimp_param_spec_item (const gchar *name,
* GIMP_TYPE_PARAM_DRAWABLE
*/
-static void gimp_param_drawable_class_init (GParamSpecClass *klass);
-static void gimp_param_drawable_init (GParamSpec *pspec);
-static gboolean gimp_param_drawable_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_drawable_class_init (GParamSpecClass *klass);
+static void gimp_param_drawable_init (GParamSpec *pspec);
GType
gimp_param_drawable_get_type (void)
@@ -275,8 +273,7 @@ gimp_param_drawable_get_type (void)
static void
gimp_param_drawable_class_init (GParamSpecClass *klass)
{
- klass->value_type = GIMP_TYPE_DRAWABLE;
- klass->value_validate = gimp_param_drawable_validate;
+ klass->value_type = GIMP_TYPE_DRAWABLE;
}
static void
@@ -284,27 +281,6 @@ gimp_param_drawable_init (GParamSpec *pspec)
{
}
-static gboolean
-gimp_param_drawable_validate (GParamSpec *pspec,
- GValue *value)
-{
- GimpParamSpecItem *ispec = GIMP_PARAM_SPEC_ITEM (pspec);
- GimpItem *item = value->data[0].v_pointer;
-
- if (! ispec->none_ok && item == NULL)
- return TRUE;
-
- if (item && (! GIMP_IS_DRAWABLE (item) ||
- ! gimp_item_is_drawable (item)))
- {
- g_object_unref (item);
- value->data[0].v_pointer = NULL;
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gimp_param_spec_drawable:
* @name: Canonical name of the property specified.
@@ -344,10 +320,8 @@ gimp_param_spec_drawable (const gchar *name,
* GIMP_TYPE_PARAM_LAYER
*/
-static void gimp_param_layer_class_init (GParamSpecClass *klass);
-static void gimp_param_layer_init (GParamSpec *pspec);
-static gboolean gimp_param_layer_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_layer_class_init (GParamSpecClass *klass);
+static void gimp_param_layer_init (GParamSpec *pspec);
GType
gimp_param_layer_get_type (void)
@@ -377,8 +351,7 @@ gimp_param_layer_get_type (void)
static void
gimp_param_layer_class_init (GParamSpecClass *klass)
{
- klass->value_type = GIMP_TYPE_LAYER;
- klass->value_validate = gimp_param_layer_validate;
+ klass->value_type = GIMP_TYPE_LAYER;
}
static void
@@ -386,27 +359,6 @@ gimp_param_layer_init (GParamSpec *pspec)
{
}
-static gboolean
-gimp_param_layer_validate (GParamSpec *pspec,
- GValue *value)
-{
- GimpParamSpecItem *ispec = GIMP_PARAM_SPEC_ITEM (pspec);
- GimpItem *item = value->data[0].v_pointer;
-
- if (! ispec->none_ok && item == NULL)
- return TRUE;
-
- if (item && (! GIMP_IS_LAYER (item) ||
- ! gimp_item_is_layer (item)))
- {
- g_object_unref (item);
- value->data[0].v_pointer = NULL;
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gimp_param_spec_layer:
* @name: Canonical name of the property specified.
@@ -446,10 +398,8 @@ gimp_param_spec_layer (const gchar *name,
* GIMP_TYPE_PARAM_CHANNEL
*/
-static void gimp_param_channel_class_init (GParamSpecClass *klass);
-static void gimp_param_channel_init (GParamSpec *pspec);
-static gboolean gimp_param_channel_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_channel_class_init (GParamSpecClass *klass);
+static void gimp_param_channel_init (GParamSpec *pspec);
GType
gimp_param_channel_get_type (void)
@@ -479,8 +429,7 @@ gimp_param_channel_get_type (void)
static void
gimp_param_channel_class_init (GParamSpecClass *klass)
{
- klass->value_type = GIMP_TYPE_CHANNEL;
- klass->value_validate = gimp_param_channel_validate;
+ klass->value_type = GIMP_TYPE_CHANNEL;
}
static void
@@ -488,27 +437,6 @@ gimp_param_channel_init (GParamSpec *pspec)
{
}
-static gboolean
-gimp_param_channel_validate (GParamSpec *pspec,
- GValue *value)
-{
- GimpParamSpecItem *ispec = GIMP_PARAM_SPEC_ITEM (pspec);
- GimpItem *item = value->data[0].v_pointer;
-
- if (! ispec->none_ok && item == NULL)
- return TRUE;
-
- if (item && (! GIMP_IS_CHANNEL (item) ||
- ! gimp_item_is_channel (item)))
- {
- g_object_unref (item);
- value->data[0].v_pointer = NULL;
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gimp_param_spec_channel:
* @name: Canonical name of the property specified.
@@ -548,10 +476,8 @@ gimp_param_spec_channel (const gchar *name,
* GIMP_TYPE_PARAM_LAYER_MASK
*/
-static void gimp_param_layer_mask_class_init (GParamSpecClass *klass);
-static void gimp_param_layer_mask_init (GParamSpec *pspec);
-static gboolean gimp_param_layer_mask_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_layer_mask_class_init (GParamSpecClass *klass);
+static void gimp_param_layer_mask_init (GParamSpec *pspec);
GType
gimp_param_layer_mask_get_type (void)
@@ -581,8 +507,7 @@ gimp_param_layer_mask_get_type (void)
static void
gimp_param_layer_mask_class_init (GParamSpecClass *klass)
{
- klass->value_type = GIMP_TYPE_LAYER_MASK;
- klass->value_validate = gimp_param_layer_mask_validate;
+ klass->value_type = GIMP_TYPE_LAYER_MASK;
}
static void
@@ -590,27 +515,6 @@ gimp_param_layer_mask_init (GParamSpec *pspec)
{
}
-static gboolean
-gimp_param_layer_mask_validate (GParamSpec *pspec,
- GValue *value)
-{
- GimpParamSpecItem *ispec = GIMP_PARAM_SPEC_ITEM (pspec);
- GimpItem *item = value->data[0].v_pointer;
-
- if (! ispec->none_ok && item == NULL)
- return TRUE;
-
- if (item && (! GIMP_IS_LAYER_MASK (item) ||
- ! gimp_item_is_layer_mask (item)))
- {
- g_object_unref (item);
- value->data[0].v_pointer = NULL;
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gimp_param_spec_layer_mask:
* @name: Canonical name of the property specified.
@@ -650,10 +554,8 @@ gimp_param_spec_layer_mask (const gchar *name,
* GIMP_TYPE_PARAM_SELECTION
*/
-static void gimp_param_selection_class_init (GParamSpecClass *klass);
-static void gimp_param_selection_init (GParamSpec *pspec);
-static gboolean gimp_param_selection_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_selection_class_init (GParamSpecClass *klass);
+static void gimp_param_selection_init (GParamSpec *pspec);
GType
gimp_param_selection_get_type (void)
@@ -683,8 +585,7 @@ gimp_param_selection_get_type (void)
static void
gimp_param_selection_class_init (GParamSpecClass *klass)
{
- klass->value_type = GIMP_TYPE_SELECTION;
- klass->value_validate = gimp_param_selection_validate;
+ klass->value_type = GIMP_TYPE_SELECTION;
}
static void
@@ -692,27 +593,6 @@ gimp_param_selection_init (GParamSpec *pspec)
{
}
-static gboolean
-gimp_param_selection_validate (GParamSpec *pspec,
- GValue *value)
-{
- GimpParamSpecItem *ispec = GIMP_PARAM_SPEC_ITEM (pspec);
- GimpItem *item = value->data[0].v_pointer;
-
- if (! ispec->none_ok && item == NULL)
- return TRUE;
-
- if (item && (! GIMP_IS_SELECTION (item) ||
- ! gimp_item_is_selection (item)))
- {
- g_object_unref (item);
- value->data[0].v_pointer = NULL;
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gimp_param_spec_selection:
* @name: Canonical name of the property specified.
@@ -752,10 +632,8 @@ gimp_param_spec_selection (const gchar *name,
* GIMP_TYPE_PARAM_VECTORS
*/
-static void gimp_param_vectors_class_init (GParamSpecClass *klass);
-static void gimp_param_vectors_init (GParamSpec *pspec);
-static gboolean gimp_param_vectors_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_vectors_class_init (GParamSpecClass *klass);
+static void gimp_param_vectors_init (GParamSpec *pspec);
GType
gimp_param_vectors_get_type (void)
@@ -785,8 +663,7 @@ gimp_param_vectors_get_type (void)
static void
gimp_param_vectors_class_init (GParamSpecClass *klass)
{
- klass->value_type = GIMP_TYPE_VECTORS;
- klass->value_validate = gimp_param_vectors_validate;
+ klass->value_type = GIMP_TYPE_VECTORS;
}
static void
@@ -794,27 +671,6 @@ gimp_param_vectors_init (GParamSpec *pspec)
{
}
-static gboolean
-gimp_param_vectors_validate (GParamSpec *pspec,
- GValue *value)
-{
- GimpParamSpecItem *ispec = GIMP_PARAM_SPEC_ITEM (pspec);
- GimpItem *item = value->data[0].v_pointer;
-
- if (! ispec->none_ok && item == NULL)
- return TRUE;
-
- if (item && (! GIMP_IS_VECTORS (item) ||
- ! gimp_item_is_vectors (item)))
- {
- g_object_unref (item);
- value->data[0].v_pointer = NULL;
- return TRUE;
- }
-
- return FALSE;
-}
-
/**
* gimp_param_spec_vectors:
* @name: Canonical name of the property specified.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]