libgimp: _gimp_gp_params_to_value_array() remove "gboolean full_copy"

With all the GValue and GimpValueArray copying involved, we can't
really make a shallow copy anyway, so don't let the API pretend we
could.
This commit is contained in:
Michael Natterer 2019-09-05 20:17:22 +02:00
parent 17f8cff6f6
commit 0f7f322fa5
5 changed files with 37 additions and 84 deletions

View file

@ -574,7 +574,7 @@ gimp_plug_in_handle_proc_run (GimpPlugIn *plug_in,
procedure ? procedure->num_args : 0, procedure ? procedure->num_args : 0,
proc_run->params, proc_run->params,
proc_run->nparams, proc_run->nparams,
FALSE, FALSE); FALSE);
/* Execute the procedure even if gimp_pdb_lookup_procedure() /* Execute the procedure even if gimp_pdb_lookup_procedure()
* returned NULL, gimp_pdb_execute_procedure_by_name_args() will * returned NULL, gimp_pdb_execute_procedure_by_name_args() will
@ -645,7 +645,7 @@ gimp_plug_in_handle_proc_return (GimpPlugIn *plug_in,
proc_frame->procedure->num_values, proc_frame->procedure->num_values,
proc_return->params, proc_return->params,
proc_return->nparams, proc_return->nparams,
TRUE, TRUE); TRUE);
if (proc_frame->main_loop) if (proc_frame->main_loop)
{ {
@ -681,7 +681,7 @@ gimp_plug_in_handle_temp_proc_return (GimpPlugIn *plug_in,
proc_frame->procedure->num_values, proc_frame->procedure->num_values,
proc_return->params, proc_return->params,
proc_return->nparams, proc_return->nparams,
TRUE, TRUE); TRUE);
gimp_plug_in_main_loop_quit (plug_in); gimp_plug_in_main_loop_quit (plug_in);
gimp_plug_in_proc_frame_pop (plug_in); gimp_plug_in_proc_frame_pop (plug_in);

View file

@ -442,8 +442,7 @@ static void
gimp_gp_param_to_value (gpointer gimp, gimp_gp_param_to_value (gpointer gimp,
const GPParam *param, const GPParam *param,
GType type, GType type,
GValue *value, GValue *value)
gboolean full_copy)
{ {
g_return_if_fail (param != NULL); g_return_if_fail (param != NULL);
g_return_if_fail (value != NULL); g_return_if_fail (value != NULL);
@ -476,10 +475,7 @@ gimp_gp_param_to_value (gpointer gimp,
} }
else if (G_VALUE_HOLDS_STRING (value)) else if (G_VALUE_HOLDS_STRING (value))
{ {
if (full_copy) g_value_set_string (value, param->data.d_string);
g_value_set_string (value, param->data.d_string);
else
g_value_set_static_string (value, param->data.d_string);
} }
else if (GIMP_VALUE_HOLDS_RGB (value)) else if (GIMP_VALUE_HOLDS_RGB (value))
{ {
@ -487,92 +483,51 @@ gimp_gp_param_to_value (gpointer gimp,
} }
else if (GIMP_VALUE_HOLDS_PARASITE (value)) else if (GIMP_VALUE_HOLDS_PARASITE (value))
{ {
if (full_copy) g_value_set_boxed (value, &param->data.d_parasite);
g_value_set_boxed (value, &param->data.d_parasite);
else
g_value_set_static_boxed (value, &param->data.d_parasite);
} }
else if (GIMP_VALUE_HOLDS_INT32_ARRAY (value)) else if (GIMP_VALUE_HOLDS_INT32_ARRAY (value))
{ {
if (full_copy) gimp_value_set_int32_array (value,
gimp_value_set_int32_array (value, (gint32 *) param->data.d_array.data,
(gint32 *) param->data.d_array.data, param->data.d_array.size /
param->data.d_array.size / sizeof (gint32));
sizeof (gint32));
else
gimp_value_set_static_int32_array (value,
(gint32 *) param->data.d_array.data,
param->data.d_array.size /
sizeof (gint32));
} }
else if (GIMP_VALUE_HOLDS_INT16_ARRAY (value)) else if (GIMP_VALUE_HOLDS_INT16_ARRAY (value))
{ {
if (full_copy) gimp_value_set_int16_array (value,
gimp_value_set_int16_array (value, (gint16 *) param->data.d_array.data,
(gint16 *) param->data.d_array.data, param->data.d_array.size /
param->data.d_array.size / sizeof (gint16));
sizeof (gint16));
else
gimp_value_set_static_int16_array (value,
(gint16 *) param->data.d_array.data,
param->data.d_array.size /
sizeof (gint16));
} }
else if (GIMP_VALUE_HOLDS_UINT8_ARRAY (value)) else if (GIMP_VALUE_HOLDS_UINT8_ARRAY (value))
{ {
if (full_copy) gimp_value_set_uint8_array (value,
gimp_value_set_uint8_array (value, param->data.d_array.data,
param->data.d_array.data, param->data.d_array.size /
param->data.d_array.size / sizeof (guint8));
sizeof (guint8));
else
gimp_value_set_static_uint8_array (value,
param->data.d_array.data,
param->data.d_array.size /
sizeof (guint8));
} }
else if (GIMP_VALUE_HOLDS_FLOAT_ARRAY (value)) else if (GIMP_VALUE_HOLDS_FLOAT_ARRAY (value))
{ {
if (full_copy) gimp_value_set_float_array (value,
gimp_value_set_float_array (value, (const gdouble *)
(const gdouble *) param->data.d_array.data,
param->data.d_array.data, param->data.d_array.size /
param->data.d_array.size / sizeof (gdouble));
sizeof (gdouble));
else
gimp_value_set_static_float_array (value,
(const gdouble *)
param->data.d_array.data,
param->data.d_array.size /
sizeof (gdouble));
} }
else if (GIMP_VALUE_HOLDS_STRING_ARRAY (value)) else if (GIMP_VALUE_HOLDS_STRING_ARRAY (value))
{ {
if (full_copy) gimp_value_set_string_array (value,
gimp_value_set_string_array (value, (const gchar **)
(const gchar **) param->data.d_string_array.data,
param->data.d_string_array.data, param->data.d_string_array.size);
param->data.d_string_array.size);
else
gimp_value_set_static_string_array (value,
(const gchar **)
param->data.d_string_array.data,
param->data.d_string_array.size);
} }
else if (GIMP_VALUE_HOLDS_RGB_ARRAY (value)) else if (GIMP_VALUE_HOLDS_RGB_ARRAY (value))
{ {
if (full_copy) gimp_value_set_rgb_array (value,
gimp_value_set_rgb_array (value, (GimpRGB *)
(GimpRGB *) param->data.d_array.data,
param->data.d_array.data, param->data.d_array.size /
param->data.d_array.size / sizeof (GimpRGB));
sizeof (GimpRGB));
else
gimp_value_set_static_rgb_array (value,
(GimpRGB *)
param->data.d_array.data,
param->data.d_array.size /
sizeof (GimpRGB));
} }
else if (GIMP_VALUE_HOLDS_OBJECT_ARRAY (value)) else if (GIMP_VALUE_HOLDS_OBJECT_ARRAY (value))
{ {
@ -635,8 +590,7 @@ _gimp_gp_params_to_value_array (gpointer gimp,
gint n_pspecs, gint n_pspecs,
const GPParam *params, const GPParam *params,
gint n_params, gint n_params,
gboolean return_values, gboolean return_values)
gboolean full_copy)
{ {
GimpValueArray *args; GimpValueArray *args;
gint i; gint i;
@ -702,7 +656,7 @@ _gimp_gp_params_to_value_array (gpointer gimp,
} }
} }
gimp_gp_param_to_value (gimp, &params[i], type, &value, full_copy); gimp_gp_param_to_value (gimp, &params[i], type, &value);
gimp_value_array_append (args, &value); gimp_value_array_append (args, &value);
g_value_unset (&value); g_value_unset (&value);

View file

@ -34,8 +34,7 @@ GimpValueArray * _gimp_gp_params_to_value_array (gpointer gimp,
gint n_pspecs, gint n_pspecs,
const GPParam *params, const GPParam *params,
gint n_params, gint n_params,
gboolean return_values, gboolean return_values);
gboolean full_copy);
GPParam * _gimp_value_array_to_gp_params (const GimpValueArray *args, GPParam * _gimp_value_array_to_gp_params (const GimpValueArray *args,
gboolean full_copy); gboolean full_copy);

View file

@ -313,7 +313,7 @@ gimp_pdb_run_procedure_array (GimpPDB *pdb,
NULL, 0, NULL, 0,
proc_return->params, proc_return->params,
proc_return->nparams, proc_return->nparams,
TRUE, FALSE); TRUE);
gimp_wire_destroy (&msg); gimp_wire_destroy (&msg);

View file

@ -1170,7 +1170,7 @@ gimp_plug_in_proc_run_internal (GimpPlugIn *plug_in,
NULL, 0, NULL, 0,
proc_run->params, proc_run->params,
proc_run->nparams, proc_run->nparams,
FALSE, FALSE); FALSE);
return_values = gimp_procedure_run (procedure, arguments); return_values = gimp_procedure_run (procedure, arguments);