From 6fad2576931b8570403c5a25f401f9a47b062a44 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sat, 14 Sep 2019 18:07:06 +0200 Subject: [PATCH] libgimpconfig: more nested if() in gimp_config_param_spec_duplicate() to reduce the number of checks per copy. --- libgimpconfig/gimpconfig-params.c | 151 +++++++++++++++--------------- 1 file changed, 77 insertions(+), 74 deletions(-) diff --git a/libgimpconfig/gimpconfig-params.c b/libgimpconfig/gimpconfig-params.c index fcaabbddce..b18486929e 100644 --- a/libgimpconfig/gimpconfig-params.c +++ b/libgimpconfig/gimpconfig-params.c @@ -82,26 +82,26 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec) if (G_IS_PARAM_SPEC_STRING (pspec)) { - GParamSpecString *sspec = G_PARAM_SPEC_STRING (pspec); + GParamSpecString *spec = G_PARAM_SPEC_STRING (pspec); if (GEGL_IS_PARAM_SPEC_FILE_PATH (pspec)) { copy = gimp_param_spec_config_path (name, nick, blurb, GIMP_CONFIG_PATH_FILE, - sspec->default_value, + spec->default_value, flags); } else if (GIMP_IS_PARAM_SPEC_CONFIG_PATH (pspec)) { copy = gimp_param_spec_config_path (name, nick, blurb, gimp_param_spec_config_path_type (pspec), - sspec->default_value, + spec->default_value, flags); } else { copy = g_param_spec_string (name, nick, blurb, - sspec->default_value, + spec->default_value, flags); } } @@ -122,34 +122,36 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec) spec->default_value, flags); } - else if (GEGL_IS_PARAM_SPEC_DOUBLE (pspec)) - { - GeglParamSpecDouble *gspec = GEGL_PARAM_SPEC_DOUBLE (pspec); - GParamSpecDouble *spec = G_PARAM_SPEC_DOUBLE (pspec); - - copy = gegl_param_spec_double (name, nick, blurb, - spec->minimum, - spec->maximum, - spec->default_value, - gspec->ui_minimum, - gspec->ui_maximum, - gspec->ui_gamma, - flags); - gegl_param_spec_double_set_steps (GEGL_PARAM_SPEC_DOUBLE (copy), - gspec->ui_step_small, - gspec->ui_step_big); - gegl_param_spec_double_set_digits (GEGL_PARAM_SPEC_DOUBLE (copy), - gspec->ui_digits); - } else if (G_IS_PARAM_SPEC_DOUBLE (pspec)) { GParamSpecDouble *spec = G_PARAM_SPEC_DOUBLE (pspec); - copy = g_param_spec_double (name, nick, blurb, - spec->minimum, - spec->maximum, - spec->default_value, - flags); + if (GEGL_IS_PARAM_SPEC_DOUBLE (pspec)) + { + GeglParamSpecDouble *gspec = GEGL_PARAM_SPEC_DOUBLE (pspec); + + copy = gegl_param_spec_double (name, nick, blurb, + spec->minimum, + spec->maximum, + spec->default_value, + gspec->ui_minimum, + gspec->ui_maximum, + gspec->ui_gamma, + flags); + gegl_param_spec_double_set_steps (GEGL_PARAM_SPEC_DOUBLE (copy), + gspec->ui_step_small, + gspec->ui_step_big); + gegl_param_spec_double_set_digits (GEGL_PARAM_SPEC_DOUBLE (copy), + gspec->ui_digits); + } + else + { + copy = g_param_spec_double (name, nick, blurb, + spec->minimum, + spec->maximum, + spec->default_value, + flags); + } } else if (G_IS_PARAM_SPEC_FLOAT (pspec)) { @@ -161,66 +163,67 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec) spec->default_value, flags); } - else if (GEGL_IS_PARAM_SPEC_INT (pspec)) - { - GeglParamSpecInt *gspec = GEGL_PARAM_SPEC_INT (pspec); - GParamSpecInt *spec = G_PARAM_SPEC_INT (pspec); - - copy = gegl_param_spec_int (name, nick, blurb, - spec->minimum, - spec->maximum, - spec->default_value, - gspec->ui_minimum, - gspec->ui_maximum, - gspec->ui_gamma, - flags); - gegl_param_spec_int_set_steps (GEGL_PARAM_SPEC_INT (copy), - gspec->ui_step_small, - gspec->ui_step_big); - } - else if (GEGL_IS_PARAM_SPEC_SEED (pspec)) - { - GParamSpecUInt *spec = G_PARAM_SPEC_UINT (pspec); - GeglParamSpecSeed *gspec = GEGL_PARAM_SPEC_SEED (pspec); - - copy = gegl_param_spec_seed (name, nick, blurb, - flags); - - G_PARAM_SPEC_UINT (copy)->minimum = spec->minimum; - G_PARAM_SPEC_UINT (copy)->maximum = spec->maximum; - - GEGL_PARAM_SPEC_SEED (copy)->ui_minimum = gspec->ui_minimum; - GEGL_PARAM_SPEC_SEED (copy)->ui_maximum = gspec->ui_maximum; - } else if (G_IS_PARAM_SPEC_INT (pspec)) { GParamSpecInt *spec = G_PARAM_SPEC_INT (pspec); - copy = g_param_spec_int (name, nick, blurb, - spec->minimum, - spec->maximum, - spec->default_value, - flags); + if (GEGL_IS_PARAM_SPEC_INT (pspec)) + { + GeglParamSpecInt *gspec = GEGL_PARAM_SPEC_INT (pspec); + + copy = gegl_param_spec_int (name, nick, blurb, + spec->minimum, + spec->maximum, + spec->default_value, + gspec->ui_minimum, + gspec->ui_maximum, + gspec->ui_gamma, + flags); + gegl_param_spec_int_set_steps (GEGL_PARAM_SPEC_INT (copy), + gspec->ui_step_small, + gspec->ui_step_big); + } + else + { + copy = g_param_spec_int (name, nick, blurb, + spec->minimum, + spec->maximum, + spec->default_value, + flags); + } } else if (G_IS_PARAM_SPEC_UINT (pspec)) { GParamSpecUInt *spec = G_PARAM_SPEC_UINT (pspec); - copy = g_param_spec_uint (name, nick, blurb, - spec->minimum, - spec->maximum, - spec->default_value, - flags); + if (GEGL_IS_PARAM_SPEC_SEED (pspec)) + { + GeglParamSpecSeed *gspec = GEGL_PARAM_SPEC_SEED (pspec); + + copy = gegl_param_spec_seed (name, nick, blurb, + flags); + + G_PARAM_SPEC_UINT (copy)->minimum = spec->minimum; + G_PARAM_SPEC_UINT (copy)->maximum = spec->maximum; + G_PARAM_SPEC_UINT (copy)->default_value = spec->default_value; + + GEGL_PARAM_SPEC_SEED (copy)->ui_minimum = gspec->ui_minimum; + GEGL_PARAM_SPEC_SEED (copy)->ui_maximum = gspec->ui_maximum; + } + else + { + copy = g_param_spec_uint (name, nick, blurb, + spec->minimum, + spec->maximum, + spec->default_value, + flags); + } } else if (GIMP_IS_PARAM_SPEC_RGB (pspec)) { - GValue value = G_VALUE_INIT; GimpRGB color; - g_value_init (&value, GIMP_TYPE_RGB); - g_param_value_set_default (pspec, &value); - gimp_value_get_rgb (&value, &color); - g_value_unset (&value); + gimp_param_spec_rgb_get_default (pspec, &color); copy = gimp_param_spec_rgb (name, nick, blurb, gimp_param_spec_rgb_has_alpha (pspec),