app/pdb/Makefile.am moved Argument and ProcArg structs and functions to

2006-03-31  Michael Natterer  <mitch@gimp.org>

	* app/pdb/Makefile.am
	* app/pdb/gimpargument.[ch]: moved Argument and ProcArg structs
	and functions to these new files. Renamed functions to
	gimp_argument_foo().

	* app/pdb/procedural_db.[ch]: removed them here.

	* app/batch.c
	* app/actions/plug-in-commands.c
	* app/actions/vectors-commands.c
	* app/core/gimppdbprogress.c
	* app/dialogs/about-dialog.c
	* app/file/file-open.c
	* app/file/file-save.c
	* app/pdb/gimpprocedure.c
	* app/pdb/procedural_db_cmds.c
	* app/plug-in/plug-in-message.c
	* app/plug-in/plug-in-params.c
	* app/plug-in/plug-in-progress.c
	* app/plug-in/plug-in-rc.c
	* app/plug-in/plug-in-run.c
	* app/plug-in/plug-ins.c
	* app/widgets/gimphelp.c
	* app/widgets/gimppdbdialog.c
	* app/xcf/xcf.c
	* tools/pdbgen/app.pl
	* tools/pdbgen/pdb/fileops.pdb: changed #includes and function
	calls accordingly.

	* app/pdb/*_cmds.c: regenerated.
This commit is contained in:
Michael Natterer 2006-03-31 19:28:53 +00:00 committed by Michael Natterer
parent fe90ae768b
commit 46a50b7e36
70 changed files with 346 additions and 528 deletions

View File

@ -1,3 +1,36 @@
2006-03-31 Michael Natterer <mitch@gimp.org>
* app/pdb/Makefile.am
* app/pdb/gimpargument.[ch]: moved Argument and ProcArg structs
and functions to these new files. Renamed functions to
gimp_argument_foo().
* app/pdb/procedural_db.[ch]: removed them here.
* app/batch.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/pdb/gimpprocedure.c
* app/pdb/procedural_db_cmds.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-params.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-ins.c
* app/widgets/gimphelp.c
* app/widgets/gimppdbdialog.c
* app/xcf/xcf.c
* tools/pdbgen/app.pl
* tools/pdbgen/pdb/fileops.pdb: changed #includes and function
calls accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-03-31 Michael Natterer <mitch@gimp.org>
* app/pdb/pdb-types.h

View File

@ -37,8 +37,8 @@
#include "plug-in/plug-in-run.h"
#include "plug-in/plug-in-proc-def.h"
#include "pdb/gimpargument.h"
#include "pdb/gimpprocedure.h"
#include "pdb/procedural_db.h"
#include "widgets/gimphelp-ids.h"
#include "widgets/gimpmessagebox.h"
@ -145,7 +145,7 @@ plug_in_run_cmd_callback (GtkAction *action,
}
error:
procedural_db_destroy_args (args, procedure->num_args, TRUE);
gimp_arguments_destroy (args, procedure->num_args, TRUE);
}
void

View File

@ -40,6 +40,7 @@
#include "core/gimpstrokedesc.h"
#include "core/gimptoolinfo.h"
#include "pdb/gimpargument.h"
#include "pdb/gimpprocedure.h"
#include "pdb/procedural_db.h"
@ -343,7 +344,7 @@ vectors_selection_to_vectors_cmd_callback (GtkAction *action,
procedure, args, 3 /* not procedure->num_args */,
FALSE, TRUE, display ? gimp_display_get_ID (display) : 0);
procedural_db_destroy_args (args, procedure->num_args, TRUE);
gimp_arguments_destroy (args, procedure->num_args, TRUE);
}
void

View File

@ -31,6 +31,7 @@
#include "batch.h"
#include "pdb/gimpargument.h"
#include "pdb/gimpprocedure.h"
#include "pdb/procedural_db.h"
@ -162,8 +163,8 @@ batch_run_cmd (Gimp *gimp,
break;
}
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
procedural_db_destroy_args (args, procedure->num_args, TRUE);
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
gimp_arguments_destroy (args, procedure->num_args, TRUE);
return;
}

View File

@ -29,7 +29,7 @@
#include "core/gimpcontext.h"
#include "pdb/gimpprocedure.h"
#include "pdb/gimpargument.h"
#include "pdb/procedural_db.h"
#include "gimppdbprogress.h"
@ -271,7 +271,7 @@ gimp_pdb_progress_run_callback (GimpPdbProgress *progress,
retval = g_value_get_double (&return_vals[1].value);
}
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
progress->callback_busy = FALSE;
}

View File

@ -29,6 +29,7 @@
#include "core/gimpcontext.h"
#include "pdb/gimpargument.h"
#include "pdb/procedural_db.h"
#include "about.h"
@ -223,7 +224,7 @@ about_dialog_load_url (GtkAboutDialog *dialog,
&nreturn_vals,
GIMP_PDB_STRING, url,
GIMP_PDB_END);
procedural_db_destroy_args (return_vals, nreturn_vals, TRUE);
gimp_arguments_destroy (return_vals, nreturn_vals, TRUE);
}

View File

@ -56,6 +56,7 @@
#include "core/gimpparamspecs.h"
#include "core/gimpprogress.h"
#include "pdb/gimpargument.h"
#include "pdb/gimpprocedure.h"
#include "pdb/procedural_db.h"
@ -175,7 +176,7 @@ file_open_image (Gimp *gimp,
_("Plug-In could not open image"));
}
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
return image;
}
@ -256,7 +257,7 @@ file_open_thumbnail (Gimp *gimp,
}
}
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
return image;
}

View File

@ -53,6 +53,7 @@
#include "core/gimpimagefile.h"
#include "core/gimpprogress.h"
#include "pdb/gimpargument.h"
#include "pdb/gimpprocedure.h"
#include "pdb/procedural_db.h"
@ -140,7 +141,7 @@ file_save (GimpImage *image,
status = g_value_get_enum (&return_vals[0].value);
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
if (status == GIMP_PDB_SUCCESS)
{

View File

@ -5,6 +5,8 @@ noinst_LIBRARIES = libapppdb.a
libapppdb_a_SOURCES = \
pdb-types.h \
\
gimpargument.c \
gimpargument.h \
gimpprocedure.c \
gimpprocedure.h \
\

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpmath/gimpmath.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -30,6 +30,7 @@
#include "libgimpthumb/gimpthumb.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"
@ -507,7 +508,7 @@ file_load_invoker (GimpProcedure *procedure,
new_args, proc->num_args,
&n_return_vals);
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
return return_vals;
}
@ -730,7 +731,7 @@ file_save_invoker (GimpProcedure *procedure,
new_args, proc->num_args,
&n_return_vals);
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
return return_vals;
}

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -36,6 +36,7 @@
#include "core/gimp.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "procedural-db-query.h"

View File

@ -40,6 +40,7 @@
#include "plug-in/plug-in-run.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "internal_procs.h"
#include "procedural_db.h"
@ -284,7 +285,7 @@ procedural_db_execute (Gimp *gimp,
* and run the next procedure.
*/
if (g_list_next (list))
procedural_db_destroy_args (return_vals, *n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, *n_return_vals, TRUE);
}
else
{
@ -351,7 +352,7 @@ procedural_db_run_proc (Gimp *gimp,
gchar *expected = procedural_db_type_name (procedure->args[i].type);
gchar *got = procedural_db_type_name (arg_type);
procedural_db_destroy_args (params, procedure->num_args, TRUE);
gimp_arguments_destroy (params, procedure->num_args, TRUE);
g_message (_("PDB calling error for procedure '%s':\n"
"Argument #%d type mismatch (expected %s, got %s)"),
@ -444,156 +445,11 @@ procedural_db_run_proc (Gimp *gimp,
params, procedure->num_args,
n_return_vals);
procedural_db_destroy_args (params, procedure->num_args, FALSE);
gimp_arguments_destroy (params, procedure->num_args, FALSE);
return return_vals;
}
void
procedural_db_destroy_args (Argument *args,
gint n_args,
gboolean full_destroy)
{
gint i;
if (! args && n_args)
return;
for (i = n_args - 1; i >= 0; i--)
{
switch (args[i].type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
case GIMP_PDB_INT8:
case GIMP_PDB_FLOAT:
case GIMP_PDB_STRING:
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
if (full_destroy)
g_free (g_value_get_pointer (&args[i].value));
break;
case GIMP_PDB_STRINGARRAY:
if (full_destroy)
{
gchar **array;
gint count;
gint j;
count = g_value_get_int (&args[i - 1].value);
array = g_value_get_pointer (&args[i].value);
for (j = 0; j < count; j++)
g_free (array[j]);
g_free (array);
}
break;
case GIMP_PDB_COLOR:
case GIMP_PDB_REGION:
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_BOUNDARY:
case GIMP_PDB_VECTORS:
case GIMP_PDB_PARASITE:
case GIMP_PDB_STATUS:
case GIMP_PDB_END:
break;
}
g_value_unset (&args[i].value);
}
g_free (args);
}
void
procedural_db_argument_init (Argument *arg,
ProcArg *proc_arg)
{
g_return_if_fail (arg != NULL);
g_return_if_fail (proc_arg != NULL);
arg->type = proc_arg->type;
g_value_init (&arg->value, proc_arg->pspec->value_type);
}
void
procedural_db_compat_arg_init (Argument *arg,
GimpPDBArgType arg_type)
{
g_return_if_fail (arg != NULL);
arg->type = arg_type;
switch (arg_type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_INT8:
g_value_init (&arg->value, G_TYPE_UINT);
break;
case GIMP_PDB_FLOAT:
g_value_init (&arg->value, G_TYPE_DOUBLE);
break;
case GIMP_PDB_STRING:
g_value_init (&arg->value, G_TYPE_STRING);
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
case GIMP_PDB_STRINGARRAY:
g_value_init (&arg->value, G_TYPE_POINTER);
break;
case GIMP_PDB_COLOR:
g_value_init (&arg->value, GIMP_TYPE_RGB);
break;
case GIMP_PDB_REGION:
case GIMP_PDB_BOUNDARY:
break;
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_VECTORS:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_PARASITE:
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
break;
case GIMP_PDB_STATUS:
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
break;
case GIMP_PDB_END:
break;
}
}
gchar *
procedural_db_type_name (GimpPDBArgType type)
{

View File

@ -20,19 +20,6 @@
#define __PROCEDURAL_DB_H__
struct _Argument
{
GimpPDBArgType type;
GValue value;
};
struct _ProcArg
{
GimpPDBArgType type; /* Argument type (int, char, char *, etc) */
GParamSpec *pspec;
};
void procedural_db_init (Gimp *gimp);
void procedural_db_free (Gimp *gimp);
@ -59,15 +46,6 @@ Argument * procedural_db_run_proc (Gimp *gimp,
gint *n_return_vals,
...);
void procedural_db_argument_init (Argument *arg,
ProcArg *proc_arg);
void procedural_db_compat_arg_init (Argument *arg,
GimpPDBArgType arg_type);
void procedural_db_destroy_args (Argument *args,
gint n_args,
gboolean full_destroy);
gchar * procedural_db_type_name (GimpPDBArgType type);

177
app/pdb/gimpargument.c Normal file
View File

@ -0,0 +1,177 @@
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "config.h"
#include <glib-object.h>
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "core/gimpparamspecs.h"
#include "gimpargument.h"
/* public functions */
void
gimp_argument_init (Argument *arg,
ProcArg *proc_arg)
{
g_return_if_fail (arg != NULL);
g_return_if_fail (proc_arg != NULL);
arg->type = proc_arg->type;
g_value_init (&arg->value, proc_arg->pspec->value_type);
}
void
gimp_argument_init_compat (Argument *arg,
GimpPDBArgType arg_type)
{
g_return_if_fail (arg != NULL);
arg->type = arg_type;
switch (arg_type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_INT8:
g_value_init (&arg->value, G_TYPE_UINT);
break;
case GIMP_PDB_FLOAT:
g_value_init (&arg->value, G_TYPE_DOUBLE);
break;
case GIMP_PDB_STRING:
g_value_init (&arg->value, G_TYPE_STRING);
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
case GIMP_PDB_STRINGARRAY:
g_value_init (&arg->value, G_TYPE_POINTER);
break;
case GIMP_PDB_COLOR:
g_value_init (&arg->value, GIMP_TYPE_RGB);
break;
case GIMP_PDB_REGION:
case GIMP_PDB_BOUNDARY:
break;
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_VECTORS:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_PARASITE:
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
break;
case GIMP_PDB_STATUS:
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
break;
case GIMP_PDB_END:
break;
}
}
void
gimp_arguments_destroy (Argument *args,
gint n_args,
gboolean full_destroy)
{
gint i;
if (! args && n_args)
return;
for (i = n_args - 1; i >= 0; i--)
{
switch (args[i].type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
case GIMP_PDB_INT8:
case GIMP_PDB_FLOAT:
case GIMP_PDB_STRING:
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
if (full_destroy)
g_free (g_value_get_pointer (&args[i].value));
break;
case GIMP_PDB_STRINGARRAY:
if (full_destroy)
{
gchar **array;
gint count;
gint j;
count = g_value_get_int (&args[i - 1].value);
array = g_value_get_pointer (&args[i].value);
for (j = 0; j < count; j++)
g_free (array[j]);
g_free (array);
}
break;
case GIMP_PDB_COLOR:
case GIMP_PDB_REGION:
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_BOUNDARY:
case GIMP_PDB_VECTORS:
case GIMP_PDB_PARASITE:
case GIMP_PDB_STATUS:
case GIMP_PDB_END:
break;
}
g_value_unset (&args[i].value);
}
g_free (args);
}

46
app/pdb/gimpargument.h Normal file
View File

@ -0,0 +1,46 @@
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __GIMP_ARGUMENT_H__
#define __GIMP_ARGUMENT_H__
struct _Argument
{
GimpPDBArgType type;
GValue value;
};
struct _ProcArg
{
GimpPDBArgType type;
GParamSpec *pspec;
};
void gimp_argument_init (Argument *arg,
ProcArg *proc_arg);
void gimp_argument_init_compat (Argument *arg,
GimpPDBArgType arg_type);
void gimp_arguments_destroy (Argument *args,
gint n_args,
gboolean full_destroy);
#endif /* __GIMP_ARGUMENT_H__ */

View File

@ -36,6 +36,7 @@
#include "core/gimp.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "procedural-db-query.h"

View File

@ -40,6 +40,7 @@
#include "plug-in/plug-in-run.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "internal_procs.h"
#include "procedural_db.h"
@ -284,7 +285,7 @@ procedural_db_execute (Gimp *gimp,
* and run the next procedure.
*/
if (g_list_next (list))
procedural_db_destroy_args (return_vals, *n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, *n_return_vals, TRUE);
}
else
{
@ -351,7 +352,7 @@ procedural_db_run_proc (Gimp *gimp,
gchar *expected = procedural_db_type_name (procedure->args[i].type);
gchar *got = procedural_db_type_name (arg_type);
procedural_db_destroy_args (params, procedure->num_args, TRUE);
gimp_arguments_destroy (params, procedure->num_args, TRUE);
g_message (_("PDB calling error for procedure '%s':\n"
"Argument #%d type mismatch (expected %s, got %s)"),
@ -444,156 +445,11 @@ procedural_db_run_proc (Gimp *gimp,
params, procedure->num_args,
n_return_vals);
procedural_db_destroy_args (params, procedure->num_args, FALSE);
gimp_arguments_destroy (params, procedure->num_args, FALSE);
return return_vals;
}
void
procedural_db_destroy_args (Argument *args,
gint n_args,
gboolean full_destroy)
{
gint i;
if (! args && n_args)
return;
for (i = n_args - 1; i >= 0; i--)
{
switch (args[i].type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
case GIMP_PDB_INT8:
case GIMP_PDB_FLOAT:
case GIMP_PDB_STRING:
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
if (full_destroy)
g_free (g_value_get_pointer (&args[i].value));
break;
case GIMP_PDB_STRINGARRAY:
if (full_destroy)
{
gchar **array;
gint count;
gint j;
count = g_value_get_int (&args[i - 1].value);
array = g_value_get_pointer (&args[i].value);
for (j = 0; j < count; j++)
g_free (array[j]);
g_free (array);
}
break;
case GIMP_PDB_COLOR:
case GIMP_PDB_REGION:
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_BOUNDARY:
case GIMP_PDB_VECTORS:
case GIMP_PDB_PARASITE:
case GIMP_PDB_STATUS:
case GIMP_PDB_END:
break;
}
g_value_unset (&args[i].value);
}
g_free (args);
}
void
procedural_db_argument_init (Argument *arg,
ProcArg *proc_arg)
{
g_return_if_fail (arg != NULL);
g_return_if_fail (proc_arg != NULL);
arg->type = proc_arg->type;
g_value_init (&arg->value, proc_arg->pspec->value_type);
}
void
procedural_db_compat_arg_init (Argument *arg,
GimpPDBArgType arg_type)
{
g_return_if_fail (arg != NULL);
arg->type = arg_type;
switch (arg_type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_INT8:
g_value_init (&arg->value, G_TYPE_UINT);
break;
case GIMP_PDB_FLOAT:
g_value_init (&arg->value, G_TYPE_DOUBLE);
break;
case GIMP_PDB_STRING:
g_value_init (&arg->value, G_TYPE_STRING);
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
case GIMP_PDB_STRINGARRAY:
g_value_init (&arg->value, G_TYPE_POINTER);
break;
case GIMP_PDB_COLOR:
g_value_init (&arg->value, GIMP_TYPE_RGB);
break;
case GIMP_PDB_REGION:
case GIMP_PDB_BOUNDARY:
break;
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_VECTORS:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_PARASITE:
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
break;
case GIMP_PDB_STATUS:
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
break;
case GIMP_PDB_END:
break;
}
}
gchar *
procedural_db_type_name (GimpPDBArgType type)
{

View File

@ -20,19 +20,6 @@
#define __PROCEDURAL_DB_H__
struct _Argument
{
GimpPDBArgType type;
GValue value;
};
struct _ProcArg
{
GimpPDBArgType type; /* Argument type (int, char, char *, etc) */
GParamSpec *pspec;
};
void procedural_db_init (Gimp *gimp);
void procedural_db_free (Gimp *gimp);
@ -59,15 +46,6 @@ Argument * procedural_db_run_proc (Gimp *gimp,
gint *n_return_vals,
...);
void procedural_db_argument_init (Argument *arg,
ProcArg *proc_arg);
void procedural_db_compat_arg_init (Argument *arg,
GimpPDBArgType arg_type);
void procedural_db_destroy_args (Argument *args,
gint n_args,
gboolean full_destroy);
gchar * procedural_db_type_name (GimpPDBArgType type);

View File

@ -40,6 +40,7 @@
#include "plug-in/plug-in-run.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
@ -338,7 +339,7 @@ gimp_procedure_get_arguments (GimpProcedure *procedure)
args = g_new0 (Argument, procedure->num_args);
for (i = 0; i < procedure->num_args; i++)
procedural_db_argument_init (&args[i], &procedure->args[i]);
gimp_argument_init (&args[i], &procedure->args[i]);
return args;
}
@ -361,7 +362,7 @@ gimp_procedure_get_return_values (GimpProcedure *procedure,
args = g_new0 (Argument, n_args);
procedural_db_compat_arg_init (&args[0], GIMP_PDB_STATUS);
gimp_argument_init_compat (&args[0], GIMP_PDB_STATUS);
if (success)
g_value_set_enum (&args[0].value, GIMP_PDB_SUCCESS);
@ -370,7 +371,7 @@ gimp_procedure_get_return_values (GimpProcedure *procedure,
if (procedure)
for (i = 0; i < procedure->num_values; i++)
procedural_db_argument_init (&args[i + 1], &procedure->values[i]);
gimp_argument_init (&args[i + 1], &procedure->values[i]);
return args;
}

View File

@ -28,6 +28,7 @@
#include "libgimpmodule/gimpmodule.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -27,6 +27,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -27,6 +27,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -28,6 +28,7 @@
#include "libgimpmath/gimpmath.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -38,6 +38,7 @@
#include "libgimpbase/gimpbase.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpmath/gimpmath.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -27,6 +27,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -27,6 +27,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpbase/gimpbase.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -29,6 +29,7 @@
#include "libgimpbase/gimpprotocol.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -36,6 +36,7 @@
#include "core/gimp.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "procedural-db-query.h"

View File

@ -40,6 +40,7 @@
#include "plug-in/plug-in-run.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "internal_procs.h"
#include "procedural_db.h"
@ -284,7 +285,7 @@ procedural_db_execute (Gimp *gimp,
* and run the next procedure.
*/
if (g_list_next (list))
procedural_db_destroy_args (return_vals, *n_return_vals, TRUE);
gimp_arguments_destroy (return_vals, *n_return_vals, TRUE);
}
else
{
@ -351,7 +352,7 @@ procedural_db_run_proc (Gimp *gimp,
gchar *expected = procedural_db_type_name (procedure->args[i].type);
gchar *got = procedural_db_type_name (arg_type);
procedural_db_destroy_args (params, procedure->num_args, TRUE);
gimp_arguments_destroy (params, procedure->num_args, TRUE);
g_message (_("PDB calling error for procedure '%s':\n"
"Argument #%d type mismatch (expected %s, got %s)"),
@ -444,156 +445,11 @@ procedural_db_run_proc (Gimp *gimp,
params, procedure->num_args,
n_return_vals);
procedural_db_destroy_args (params, procedure->num_args, FALSE);
gimp_arguments_destroy (params, procedure->num_args, FALSE);
return return_vals;
}
void
procedural_db_destroy_args (Argument *args,
gint n_args,
gboolean full_destroy)
{
gint i;
if (! args && n_args)
return;
for (i = n_args - 1; i >= 0; i--)
{
switch (args[i].type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
case GIMP_PDB_INT8:
case GIMP_PDB_FLOAT:
case GIMP_PDB_STRING:
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
if (full_destroy)
g_free (g_value_get_pointer (&args[i].value));
break;
case GIMP_PDB_STRINGARRAY:
if (full_destroy)
{
gchar **array;
gint count;
gint j;
count = g_value_get_int (&args[i - 1].value);
array = g_value_get_pointer (&args[i].value);
for (j = 0; j < count; j++)
g_free (array[j]);
g_free (array);
}
break;
case GIMP_PDB_COLOR:
case GIMP_PDB_REGION:
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_BOUNDARY:
case GIMP_PDB_VECTORS:
case GIMP_PDB_PARASITE:
case GIMP_PDB_STATUS:
case GIMP_PDB_END:
break;
}
g_value_unset (&args[i].value);
}
g_free (args);
}
void
procedural_db_argument_init (Argument *arg,
ProcArg *proc_arg)
{
g_return_if_fail (arg != NULL);
g_return_if_fail (proc_arg != NULL);
arg->type = proc_arg->type;
g_value_init (&arg->value, proc_arg->pspec->value_type);
}
void
procedural_db_compat_arg_init (Argument *arg,
GimpPDBArgType arg_type)
{
g_return_if_fail (arg != NULL);
arg->type = arg_type;
switch (arg_type)
{
case GIMP_PDB_INT32:
case GIMP_PDB_INT16:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_INT8:
g_value_init (&arg->value, G_TYPE_UINT);
break;
case GIMP_PDB_FLOAT:
g_value_init (&arg->value, G_TYPE_DOUBLE);
break;
case GIMP_PDB_STRING:
g_value_init (&arg->value, G_TYPE_STRING);
break;
case GIMP_PDB_INT32ARRAY:
case GIMP_PDB_INT16ARRAY:
case GIMP_PDB_INT8ARRAY:
case GIMP_PDB_FLOATARRAY:
case GIMP_PDB_STRINGARRAY:
g_value_init (&arg->value, G_TYPE_POINTER);
break;
case GIMP_PDB_COLOR:
g_value_init (&arg->value, GIMP_TYPE_RGB);
break;
case GIMP_PDB_REGION:
case GIMP_PDB_BOUNDARY:
break;
case GIMP_PDB_DISPLAY:
case GIMP_PDB_IMAGE:
case GIMP_PDB_LAYER:
case GIMP_PDB_CHANNEL:
case GIMP_PDB_DRAWABLE:
case GIMP_PDB_SELECTION:
case GIMP_PDB_VECTORS:
g_value_init (&arg->value, G_TYPE_INT);
break;
case GIMP_PDB_PARASITE:
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
break;
case GIMP_PDB_STATUS:
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
break;
case GIMP_PDB_END:
break;
}
}
gchar *
procedural_db_type_name (GimpPDBArgType type)
{

View File

@ -20,19 +20,6 @@
#define __PROCEDURAL_DB_H__
struct _Argument
{
GimpPDBArgType type;
GValue value;
};
struct _ProcArg
{
GimpPDBArgType type; /* Argument type (int, char, char *, etc) */
GParamSpec *pspec;
};
void procedural_db_init (Gimp *gimp);
void procedural_db_free (Gimp *gimp);
@ -59,15 +46,6 @@ Argument * procedural_db_run_proc (Gimp *gimp,
gint *n_return_vals,
...);
void procedural_db_argument_init (Argument *arg,
ProcArg *proc_arg);
void procedural_db_compat_arg_init (Argument *arg,
GimpPDBArgType arg_type);
void procedural_db_destroy_args (Argument *args,
gint n_args,
gboolean full_destroy);
gchar * procedural_db_type_name (GimpPDBArgType type);

View File

@ -26,6 +26,7 @@
#include "libgimpbase/gimpbase.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpcolor/gimpcolor.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpbase/gimpbase.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpmath/gimpmath.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -24,6 +24,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -26,6 +26,7 @@
#include "libgimpbase/gimpbase.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -25,6 +25,7 @@
#include <glib-object.h>
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"

View File

@ -33,6 +33,7 @@
#include "core/gimpimage.h"
#include "core/gimpparamspecs.h"
#include "pdb/gimpargument.h"
#include "pdb/gimpprocedure.h"
#include "pdb/procedural_db.h"

View File

@ -702,6 +702,8 @@ GPL
$headers .= '#include "pdb-types.h"';
$headers .= "\n";
$headers .= '#include "gimpargument.h"';
$headers .= "\n";
$headers .= '#include "gimpprocedure.h"';
$headers .= "\n";
$headers .= '#include "procedural_db.h"';

View File

@ -89,7 +89,7 @@ HELP
new_args, proc->num_args,
&n_return_vals);
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
return return_vals;
}
@ -216,7 +216,7 @@ HELP
new_args, proc->num_args,
&n_return_vals);
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
return return_vals;
}