static GimpValueArray * palette_duplicate_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GimpValueArray *args, GError **error) { gboolean success = TRUE; GimpValueArray *return_vals; const gchar *name; gchar *copy_name = NULL; name = g_value_get_string (gimp_value_array_index (args, 0)); if (success) { GimpPalette *palette = gimp_pdb_get_palette (gimp, name, FALSE, error); if (palette) { GimpPalette *palette_copy = (GimpPalette *) gimp_data_factory_data_duplicate (gimp->palette_factory, GIMP_DATA (palette)); if (palette_copy) copy_name = g_strdup (gimp_object_get_name (palette_copy)); else success = FALSE; } else success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) g_value_take_string (gimp_value_array_index (return_vals, 1), copy_name); return return_vals; }
static GValueArray * palette_duplicate_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GValueArray *args) { gboolean success = TRUE; GValueArray *return_vals; const gchar *name; gchar *copy_name = NULL; name = g_value_get_string (&args->values[0]); if (success) { GimpPalette *palette = (GimpPalette *) gimp_container_get_child_by_name (gimp->palette_factory->container, name); if (palette) { GimpPalette *palette_copy = (GimpPalette *) gimp_data_factory_data_duplicate (gimp->palette_factory, GIMP_DATA (palette)); if (palette_copy) copy_name = g_strdup (gimp_object_get_name (GIMP_OBJECT (palette_copy))); else success = FALSE; } else success = FALSE; } return_vals = gimp_procedure_get_return_values (procedure, success); if (success) g_value_take_string (&return_vals->values[1], copy_name); return return_vals; }