[gimp] libgimp: simplify gimp_pdb_run_procedure_valist() a lot
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: simplify gimp_pdb_run_procedure_valist() a lot
- Date: Thu, 8 Aug 2019 11:30:39 +0000 (UTC)
commit 35ead93a8f3cbd3124c94b850502513534d7eccc
Author: Michael Natterer <mitch gimp org>
Date: Thu Aug 8 13:27:34 2019 +0200
libgimp: simplify gimp_pdb_run_procedure_valist() a lot
by using gimp_value_array_new_from_types_valist().
libgimp/gimppdb.c | 50 ++++++++++++++------------------------------------
1 file changed, 14 insertions(+), 36 deletions(-)
---
diff --git a/libgimp/gimppdb.c b/libgimp/gimppdb.c
index 47347d6c2f..6927a1870b 100644
--- a/libgimp/gimppdb.c
+++ b/libgimp/gimppdb.c
@@ -20,8 +20,6 @@
#include "config.h"
-#include <gobject/gvaluecollector.h>
-
#include "gimp.h"
#include "libgimpbase/gimpprotocol.h"
@@ -229,46 +227,26 @@ gimp_pdb_run_procedure_valist (GimpPDB *pdb,
{
GimpValueArray *arguments;
GimpValueArray *return_values;
- GType type;
+ gchar *error_msg = NULL;
g_return_val_if_fail (GIMP_IS_PDB (pdb), NULL);
g_return_val_if_fail (procedure_name != NULL, NULL);
- arguments = gimp_value_array_new (0);
-
- type = first_type;
+ arguments = gimp_value_array_new_from_types_valist (&error_msg,
+ first_type,
+ args);
- while (type != G_TYPE_NONE)
+ if (! arguments)
{
- GValue value = G_VALUE_INIT;
- gchar *error_msg = NULL;
-
- g_value_init (&value, type);
-
- G_VALUE_COLLECT (&value, args, G_VALUE_NOCOPY_CONTENTS, &error_msg);
-
- if (error_msg)
- {
- GError *error = g_error_new_literal (GIMP_PDB_ERROR,
- GIMP_PDB_ERROR_INTERNAL_ERROR,
- error_msg);
- g_printerr ("%s: %s", G_STRFUNC, error_msg);
- g_free (error_msg);
-
- gimp_value_array_unref (arguments);
-
- return_values = gimp_procedure_new_return_values (NULL,
- GIMP_PDB_CALLING_ERROR,
- error);
- va_end (args);
-
- return return_values;
- }
-
- gimp_value_array_append (arguments, &value);
- g_value_unset (&value);
-
- type = va_arg (args, GType);
+ GError *error = g_error_new_literal (GIMP_PDB_ERROR,
+ GIMP_PDB_ERROR_INTERNAL_ERROR,
+ error_msg);
+ g_printerr ("%s: %s", G_STRFUNC, error_msg);
+ g_free (error_msg);
+
+ return gimp_procedure_new_return_values (NULL,
+ GIMP_PDB_CALLING_ERROR,
+ error);
}
return_values = gimp_pdb_run_procedure_array (pdb, procedure_name,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]