mirror of https://github.com/GNOME/gimp.git
app/plug-in/gimppluginprocedure.c don't just free the return values when
2008-08-21 Sven Neumann <sven@gimp.org> * app/plug-in/gimppluginprocedure.c * app/plug-in/gimptemporaryprocedure.c: don't just free the return values when running procedures asynchronously. Instead examine them and display the error message if there's one. * app/plug-in/gimppluginmanager-call.c (gimp_plug_in_manager_call_run_temp): return NULL if procedure->plug_in is not set. * app/plug-in/gimpplugin-message.c: comment. svn path=/trunk/; revision=26700
This commit is contained in:
parent
3f37605f34
commit
5e95e896b1
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
2008-08-21 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* app/plug-in/gimppluginprocedure.c
|
||||||
|
* app/plug-in/gimptemporaryprocedure.c: don't just free the return
|
||||||
|
values when running procedures asynchronously. Instead examine
|
||||||
|
them and display the error message if there's one.
|
||||||
|
|
||||||
|
* app/plug-in/gimppluginmanager-call.c
|
||||||
|
(gimp_plug_in_manager_call_run_temp): return NULL if
|
||||||
|
procedure->plug_in is not set.
|
||||||
|
|
||||||
|
* app/plug-in/gimpplugin-message.c: comment.
|
||||||
|
|
||||||
2008-08-21 Michael Natterer <mitch@gimp.org>
|
2008-08-21 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
* configure.in: removed indentation from blocks after
|
* configure.in: removed indentation from blocks after
|
||||||
|
|
|
@ -436,7 +436,7 @@ gimp_plug_in_handle_proc_error (GimpPlugIn *plug_in,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_PDB_ERROR_HANDLER_PLUGIN:
|
case GIMP_PDB_ERROR_HANDLER_PLUGIN:
|
||||||
/* the plug-in is responsible for this error */
|
/* the plug-in is responsible for handling this error */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -289,7 +289,8 @@ gimp_plug_in_manager_call_run_temp (GimpPlugInManager *manager,
|
||||||
GimpTemporaryProcedure *procedure,
|
GimpTemporaryProcedure *procedure,
|
||||||
GValueArray *args)
|
GValueArray *args)
|
||||||
{
|
{
|
||||||
GimpPlugIn *plug_in;
|
GValueArray *return_vals = NULL;
|
||||||
|
GimpPlugIn *plug_in;
|
||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
|
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
|
||||||
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
|
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
|
||||||
|
@ -302,7 +303,6 @@ gimp_plug_in_manager_call_run_temp (GimpPlugInManager *manager,
|
||||||
if (plug_in)
|
if (plug_in)
|
||||||
{
|
{
|
||||||
GimpPlugInProcFrame *proc_frame;
|
GimpPlugInProcFrame *proc_frame;
|
||||||
GValueArray *return_vals;
|
|
||||||
GPProcRun proc_run;
|
GPProcRun proc_run;
|
||||||
|
|
||||||
proc_frame = gimp_plug_in_proc_frame_push (plug_in, context, progress,
|
proc_frame = gimp_plug_in_proc_frame_push (plug_in, context, progress,
|
||||||
|
@ -346,13 +346,7 @@ gimp_plug_in_manager_call_run_temp (GimpPlugInManager *manager,
|
||||||
|
|
||||||
gimp_plug_in_proc_frame_unref (proc_frame, plug_in);
|
gimp_plug_in_proc_frame_unref (proc_frame, plug_in);
|
||||||
g_object_unref (plug_in);
|
g_object_unref (plug_in);
|
||||||
|
}
|
||||||
|
|
||||||
return return_vals;
|
return return_vals;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* can we actually ever get here? */
|
|
||||||
return gimp_procedure_get_return_values (GIMP_PROCEDURE (procedure),
|
|
||||||
FALSE, NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,11 +231,40 @@ gimp_plug_in_procedure_execute_async (GimpProcedure *procedure,
|
||||||
plug_in_procedure,
|
plug_in_procedure,
|
||||||
args, FALSE, display);
|
args, FALSE, display);
|
||||||
|
|
||||||
/* In case of errors, gimp_plug_in_manager_call_run() may return
|
|
||||||
* return_vals, even if run asynchronously.
|
|
||||||
*/
|
|
||||||
if (return_vals)
|
if (return_vals)
|
||||||
g_value_array_free (return_vals);
|
{
|
||||||
|
switch (g_value_get_enum (&return_vals->values[0]))
|
||||||
|
{
|
||||||
|
case GIMP_PDB_SUCCESS:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_PDB_CALLING_ERROR:
|
||||||
|
if (return_vals->n_values > 1 &&
|
||||||
|
G_VALUE_HOLDS_STRING (&return_vals->values[1]))
|
||||||
|
{
|
||||||
|
gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
|
||||||
|
_("Calling error for procedure '%s':\n"
|
||||||
|
"%s"),
|
||||||
|
gimp_object_get_name (GIMP_OBJECT (procedure)),
|
||||||
|
g_value_get_string (&return_vals->values[1]));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_PDB_EXECUTION_ERROR:
|
||||||
|
if (return_vals->n_values > 1 &&
|
||||||
|
G_VALUE_HOLDS_STRING (&return_vals->values[1]))
|
||||||
|
{
|
||||||
|
gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
|
||||||
|
_("Execution error for procedure '%s':\n"
|
||||||
|
"%s"),
|
||||||
|
gimp_object_get_name (GIMP_OBJECT (procedure)),
|
||||||
|
g_value_get_string (&return_vals->values[1]));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_value_array_free (return_vals);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const gchar *
|
const gchar *
|
||||||
|
|
|
@ -116,7 +116,40 @@ gimp_temporary_procedure_execute_async (GimpProcedure *procedure,
|
||||||
GIMP_TEMPORARY_PROCEDURE (procedure),
|
GIMP_TEMPORARY_PROCEDURE (procedure),
|
||||||
args);
|
args);
|
||||||
|
|
||||||
g_value_array_free (return_vals);
|
if (return_vals)
|
||||||
|
{
|
||||||
|
switch (g_value_get_enum (&return_vals->values[0]))
|
||||||
|
{
|
||||||
|
case GIMP_PDB_SUCCESS:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_PDB_CALLING_ERROR:
|
||||||
|
if (return_vals->n_values > 1 &&
|
||||||
|
G_VALUE_HOLDS_STRING (&return_vals->values[1]))
|
||||||
|
{
|
||||||
|
gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
|
||||||
|
_("Calling error for procedure '%s':\n"
|
||||||
|
"%s"),
|
||||||
|
gimp_object_get_name (GIMP_OBJECT (procedure)),
|
||||||
|
g_value_get_string (&return_vals->values[1]));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_PDB_EXECUTION_ERROR:
|
||||||
|
if (return_vals->n_values > 1 &&
|
||||||
|
G_VALUE_HOLDS_STRING (&return_vals->values[1]))
|
||||||
|
{
|
||||||
|
gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
|
||||||
|
_("Execution error for procedure '%s':\n"
|
||||||
|
"%s"),
|
||||||
|
gimp_object_get_name (GIMP_OBJECT (procedure)),
|
||||||
|
g_value_get_string (&return_vals->values[1]));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_value_array_free (return_vals);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const gchar *
|
const gchar *
|
||||||
|
|
Loading…
Reference in New Issue