libgimp: kill the plug-in when old API is used while a GimpPlugIn exists
This commit is contained in:
parent
529aa743dd
commit
9549be2539
1 changed files with 36 additions and 0 deletions
|
|
@ -43,6 +43,16 @@
|
|||
**/
|
||||
|
||||
|
||||
#define ASSERT_NO_PLUG_IN_EXISTS(strfunc) \
|
||||
if (gimp_get_plug_in ()) \
|
||||
{ \
|
||||
g_printerr ("%s ERROR: %s() cannot be called when using the " \
|
||||
"new plug-in API\n", \
|
||||
g_get_prgname (), strfunc); \
|
||||
gimp_quit (); \
|
||||
}
|
||||
|
||||
|
||||
static void gimp_process_message (GimpWireMessage *msg);
|
||||
static void gimp_single_message (void);
|
||||
static gboolean gimp_extension_read (GIOChannel *channel,
|
||||
|
|
@ -151,6 +161,8 @@ gimp_install_procedure (const gchar *name,
|
|||
g_return_if_fail ((n_return_vals == 0 && return_vals == NULL) ||
|
||||
(n_return_vals > 0 && return_vals != NULL));
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
proc_install.name = (gchar *) name;
|
||||
proc_install.blurb = (gchar *) blurb;
|
||||
proc_install.help = (gchar *) help;
|
||||
|
|
@ -265,6 +277,8 @@ gimp_install_temp_proc (const gchar *name,
|
|||
g_return_if_fail (type == GIMP_TEMPORARY);
|
||||
g_return_if_fail (run_proc != NULL);
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
gimp_install_procedure (name,
|
||||
blurb, help,
|
||||
author, copyright, date,
|
||||
|
|
@ -295,6 +309,8 @@ gimp_uninstall_temp_proc (const gchar *name)
|
|||
|
||||
g_return_if_fail (name != NULL);
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
proc_uninstall.name = (gchar *) name;
|
||||
|
||||
if (! gp_proc_uninstall_write (_gimp_writechannel, &proc_uninstall, NULL))
|
||||
|
|
@ -327,6 +343,8 @@ gimp_uninstall_temp_proc (const gchar *name)
|
|||
void
|
||||
gimp_extension_ack (void)
|
||||
{
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
if (! gp_extension_ack_write (_gimp_writechannel, NULL))
|
||||
gimp_quit ();
|
||||
}
|
||||
|
|
@ -361,6 +379,8 @@ gimp_extension_enable (void)
|
|||
{
|
||||
static gboolean callback_added = FALSE;
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
if (! callback_added)
|
||||
{
|
||||
g_io_add_watch (_gimp_readchannel, G_IO_IN | G_IO_PRI,
|
||||
|
|
@ -392,6 +412,8 @@ gimp_extension_process (guint timeout)
|
|||
#ifndef G_OS_WIN32
|
||||
gint select_val;
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
do
|
||||
{
|
||||
fd_set readfds;
|
||||
|
|
@ -428,6 +450,8 @@ gimp_extension_process (guint timeout)
|
|||
*/
|
||||
GPollFD pollfd;
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
if (timeout == 0)
|
||||
timeout = -1;
|
||||
|
||||
|
|
@ -442,6 +466,8 @@ void
|
|||
_gimp_read_expect_msg (GimpWireMessage *msg,
|
||||
gint type)
|
||||
{
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
if (! gimp_wire_read_msg (_gimp_readchannel, msg, NULL))
|
||||
|
|
@ -497,6 +523,8 @@ gimp_run_procedure (const gchar *name,
|
|||
g_return_val_if_fail (name != NULL, NULL);
|
||||
g_return_val_if_fail (n_return_vals != NULL, NULL);
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
va_start (args, n_return_vals);
|
||||
param_type = va_arg (args, GimpPDBArgType);
|
||||
|
||||
|
|
@ -699,6 +727,8 @@ gimp_run_procedure2 (const gchar *name,
|
|||
g_return_val_if_fail (name != NULL, NULL);
|
||||
g_return_val_if_fail (n_return_vals != NULL, NULL);
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
arguments = _gimp_params_to_value_array (params, n_params, FALSE);
|
||||
|
||||
return_values = gimp_run_procedure_with_array (name, arguments);
|
||||
|
|
@ -727,6 +757,8 @@ gimp_destroy_params (GimpParam *params,
|
|||
{
|
||||
gint i;
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
for (i = 0; i < n_params; i++)
|
||||
{
|
||||
switch (params[i].type)
|
||||
|
|
@ -811,6 +843,8 @@ void
|
|||
gimp_destroy_paramdefs (GimpParamDef *paramdefs,
|
||||
gint n_params)
|
||||
{
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
while (n_params--)
|
||||
{
|
||||
g_free (paramdefs[n_params].name);
|
||||
|
|
@ -825,6 +859,8 @@ _gimp_loop (GimpRunProc run_proc)
|
|||
{
|
||||
GimpWireMessage msg;
|
||||
|
||||
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
|
||||
|
||||
gimp_temp_proc_ht = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
|
||||
while (TRUE)
|
||||
|
|
|
|||
Loading…
Reference in a new issue