[gimp] libgimp: remove all support for temp procs from gimplegacy.[ch]
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: remove all support for temp procs from gimplegacy.[ch]
- Date: Wed, 14 Aug 2019 17:17:36 +0000 (UTC)
commit 6801857b9c4d3bd71171a86ceaf3128516389f00
Author: Michael Natterer <mitch gimp org>
Date: Wed Aug 14 19:16:33 2019 +0200
libgimp: remove all support for temp procs from gimplegacy.[ch]
libgimp/gimp.def | 3 -
libgimp/gimplegacy.c | 241 ++-------------------------------------------------
libgimp/gimplegacy.h | 25 ------
3 files changed, 8 insertions(+), 261 deletions(-)
---
diff --git a/libgimp/gimp.def b/libgimp/gimp.def
index d5d240a025..3eb48cfc06 100644
--- a/libgimp/gimp.def
+++ b/libgimp/gimp.def
@@ -253,7 +253,6 @@ EXPORTS
gimp_export_exif
gimp_export_iptc
gimp_export_xmp
- gimp_extension_enable
gimp_file_load
gimp_file_load_layer
gimp_file_load_layers
@@ -476,7 +475,6 @@ EXPORTS
gimp_image_unset_active_channel
gimp_image_width
gimp_install_procedure
- gimp_install_temp_proc
gimp_item_attach_parasite
gimp_item_delete
gimp_item_detach_parasite
@@ -768,7 +766,6 @@ EXPORTS
gimp_text_layer_set_text
gimp_tile_height
gimp_tile_width
- gimp_uninstall_temp_proc
gimp_user_time
gimp_value_get_channel_id
gimp_value_get_display_id
diff --git a/libgimp/gimplegacy.c b/libgimp/gimplegacy.c
index f2600be5c5..cdd51fddf4 100644
--- a/libgimp/gimplegacy.c
+++ b/libgimp/gimplegacy.c
@@ -64,16 +64,8 @@
static void gimp_loop (GimpRunProc run_proc);
static void gimp_process_message (GimpWireMessage *msg);
-static void gimp_single_message (void);
-static gboolean gimp_extension_read (GIOChannel *channel,
- GIOCondition condition,
- gpointer data);
static void gimp_proc_run (GPProcRun *proc_run,
GimpRunProc run_proc);
-static void gimp_temp_proc_run (GPProcRun *proc_run);
-static void gimp_proc_run_internal (GPProcRun *proc_run,
- GimpRunProc run_proc,
- GPProcReturn *proc_return);
static gboolean gimp_plugin_io_error_handler (GIOChannel *channel,
GIOCondition cond,
gpointer data);
@@ -94,8 +86,6 @@ static gulong write_buffer_index = 0;
static GimpPlugInInfo PLUG_IN_INFO = { 0, };
-static GHashTable *gimp_temp_proc_ht = NULL;
-
static GimpPDBStatusType pdb_error_status = GIMP_PDB_SUCCESS;
static gchar *pdb_error_message = NULL;
@@ -263,162 +253,6 @@ gimp_install_procedure (const gchar *name,
g_free (proc_install.return_vals);
}
-/**
- * gimp_install_temp_proc:
- * @name: the procedure's name.
- * @blurb: a short text describing what the procedure does.
- * @help: the help text for the procedure (usually considerably
- * longer than @blurb).
- * @authors: the procedure's authors.
- * @copyright: the procedure's copyright.
- * @date: the date the procedure was added.
- * @menu_label: the procedure's menu label, or %NULL if the procedure has
- * no menu entry.
- * @image_types: the drawable types the procedure can handle.
- * @type: the type of the procedure.
- * @n_params: the number of parameters the procedure takes.
- * @n_return_vals: the number of return values the procedure returns.
- * @params: (array length=n_params):
- * the procedure's parameters.
- * @return_vals: (array length=n_return_vals):
- * the procedure's return values.
- * @run_proc: (closure) (scope async):
- * the function to call for executing the procedure.
- *
- * Installs a new temporary procedure with the PDB (procedural database).
- *
- * A temporary procedure is a procedure which is only available while
- * one of your plug-in's "real" procedures is running.
- *
- * See gimp_install_procedure() for most details.
- *
- * @type <emphasis>must</emphasis> be %GIMP_TEMPORARY or the function
- * will fail.
- *
- * @run_proc is the function which will be called to execute the
- * procedure.
- *
- * NOTE: Normally, plug-in communication is triggered by the plug-in
- * and the GIMP core only responds to the plug-in's requests. You must
- * explicitly enable receiving of temporary procedure run requests
- * using either gimp_extension_enable() or
- * gimp_extension_process(). See this functions' documentation for
- * details.
- **/
-void
-gimp_install_temp_proc (const gchar *name,
- const gchar *blurb,
- const gchar *help,
- const gchar *authors,
- const gchar *copyright,
- const gchar *date,
- const gchar *menu_label,
- const gchar *image_types,
- GimpPDBProcType type,
- gint n_params,
- gint n_return_vals,
- const GimpParamDef *params,
- const GimpParamDef *return_vals,
- GimpRunProc run_proc)
-{
- g_return_if_fail (name != NULL);
- g_return_if_fail ((n_params == 0 && params == NULL) ||
- (n_params > 0 && params != NULL));
- g_return_if_fail ((n_return_vals == 0 && return_vals == NULL) ||
- (n_return_vals > 0 && return_vals != NULL));
- 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,
- authors, copyright, date,
- menu_label,
- image_types,
- type,
- n_params, n_return_vals,
- params, return_vals);
-
- /* Insert the temp proc run function into the hash table */
- g_hash_table_insert (gimp_temp_proc_ht, g_strdup (name),
- (gpointer) run_proc);
-}
-
-/**
- * gimp_uninstall_temp_proc:
- * @name: the procedure's name
- *
- * Uninstalls a temporary procedure which has previously been
- * installed using gimp_install_temp_proc().
- **/
-void
-gimp_uninstall_temp_proc (const gchar *name)
-{
- GPProcUninstall proc_uninstall;
- gpointer hash_name;
- gboolean found;
-
- 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))
- gimp_quit ();
-
- found = g_hash_table_lookup_extended (gimp_temp_proc_ht, name, &hash_name,
- NULL);
- if (found)
- {
- g_hash_table_remove (gimp_temp_proc_ht, (gpointer) name);
- g_free (hash_name);
- }
-}
-
-/**
- * gimp_extension_enable:
- *
- * Enables asynchronous processing of messages from the main GIMP
- * application.
- *
- * Normally, a plug-in is not called by GIMP except for the call to
- * the procedure it implements. All subsequent communication is
- * triggered by the plug-in and all messages sent from GIMP to the
- * plug-in are just answers to requests the plug-in made.
- *
- * If the plug-in however registered temporary procedures using
- * gimp_install_temp_proc(), it needs to be able to receive requests
- * to execute them. Usually this will be done by running
- * gimp_extension_process() in an endless loop.
- *
- * If the plug-in cannot use gimp_extension_process(), i.e. if it has
- * a GUI and is hanging around in a #GMainLoop, it must call
- * gimp_extension_enable().
- *
- * Note that the plug-in does not need to be a #GIMP_EXTENSION to
- * register temporary procedures.
- *
- * See also: gimp_install_procedure(), gimp_install_temp_proc()
- **/
-void
-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,
- gimp_extension_read,
- NULL);
-
- callback_added = TRUE;
- }
-}
-
void
_gimp_legacy_read_expect_msg (GimpWireMessage *msg,
gint type)
@@ -577,8 +411,6 @@ _gimp_legacy_run (void)
{
ASSERT_NO_PLUG_IN_EXISTS (G_STRFUNC);
- gimp_temp_proc_ht = g_hash_table_new (g_str_hash, g_str_equal);
-
g_io_add_watch (_gimp_readchannel,
G_IO_ERR | G_IO_HUP,
gimp_plugin_io_error_handler,
@@ -972,7 +804,7 @@ gimp_process_message (GimpWireMessage *msg)
g_warning ("unexpected proc return message received (should not happen)");
break;
case GP_TEMP_PROC_RUN:
- gimp_temp_proc_run (msg->data);
+ g_warning ("unexpected temp proc run message received (support removed)");
break;
case GP_TEMP_PROC_RETURN:
g_warning ("unexpected temp proc return message received (should not happen)");
@@ -986,71 +818,11 @@ gimp_process_message (GimpWireMessage *msg)
}
}
-static void
-gimp_single_message (void)
-{
- GimpWireMessage msg;
-
- /* Run a temp function */
- if (! gimp_wire_read_msg (_gimp_readchannel, &msg, NULL))
- gimp_quit ();
-
- gimp_process_message (&msg);
-
- gimp_wire_destroy (&msg);
-}
-
-static gboolean
-gimp_extension_read (GIOChannel *channel,
- GIOCondition condition,
- gpointer data)
-{
- gimp_single_message ();
-
- return G_SOURCE_CONTINUE;
-}
-
static void
gimp_proc_run (GPProcRun *proc_run,
GimpRunProc run_proc)
{
- GPProcReturn proc_return;
-
- gimp_proc_run_internal (proc_run, run_proc, &proc_return);
-
- if (! gp_proc_return_write (_gimp_writechannel, &proc_return, NULL))
- gimp_quit ();
-}
-
-static void
-gimp_temp_proc_run (GPProcRun *proc_run)
-{
- GPProcReturn proc_return;
- GimpRunProc run_proc = g_hash_table_lookup (gimp_temp_proc_ht,
- proc_run->name);
-
- if (run_proc)
- {
-#ifdef GDK_WINDOWING_QUARTZ
- if (proc_run->params &&
- proc_run->params[0].data.d_int == GIMP_RUN_INTERACTIVE)
- {
- [NSApp activateIgnoringOtherApps: YES];
- }
-#endif
-
- gimp_proc_run_internal (proc_run, run_proc, &proc_return);
-
- if (! gp_temp_proc_return_write (_gimp_writechannel, &proc_return, NULL))
- gimp_quit ();
- }
-}
-
-static void
-gimp_proc_run_internal (GPProcRun *proc_run,
- GimpRunProc run_proc,
- GPProcReturn *proc_return)
-{
+ GPProcReturn proc_return;
GimpValueArray *arguments;
GimpValueArray *return_values = NULL;
GimpParam *params;
@@ -1079,11 +851,14 @@ gimp_proc_run_internal (GPProcRun *proc_run,
g_free (params);
gimp_value_array_unref (arguments);
- proc_return->name = proc_run->name;
- proc_return->nparams = gimp_value_array_length (return_values);
- proc_return->params = _gimp_value_array_to_gp_params (return_values, TRUE);
+ proc_return.name = proc_run->name;
+ proc_return.nparams = gimp_value_array_length (return_values);
+ proc_return.params = _gimp_value_array_to_gp_params (return_values, TRUE);
gimp_value_array_unref (return_values);
+
+ if (! gp_proc_return_write (_gimp_writechannel, &proc_return, NULL))
+ gimp_quit ();
}
static gboolean
diff --git a/libgimp/gimplegacy.h b/libgimp/gimplegacy.h
index 4ecd3fe586..bd73c828a3 100644
--- a/libgimp/gimplegacy.h
+++ b/libgimp/gimplegacy.h
@@ -253,31 +253,6 @@ void gimp_install_procedure (const gchar *name,
const GimpParamDef *params,
const GimpParamDef *return_vals);
-/* Install a temporary procedure in the procedure database.
- */
-void gimp_install_temp_proc (const gchar *name,
- const gchar *blurb,
- const gchar *help,
- const gchar *authors,
- const gchar *copyright,
- const gchar *date,
- const gchar *menu_label,
- const gchar *image_types,
- GimpPDBProcType type,
- gint n_params,
- gint n_return_vals,
- const GimpParamDef *params,
- const GimpParamDef *return_vals,
- GimpRunProc run_proc);
-
-/* Uninstall a temporary procedure
- */
-void gimp_uninstall_temp_proc (const gchar *name);
-
-/* Enable asynchronous processing of temp_procs
- */
-void gimp_extension_enable (void);
-
/* Run a procedure in the procedure database. The parameters are
* specified as a GimpValueArray, so are the return values.
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]