[mojosetup] [1/3] Trace the GUI plugin names as they are tested.

Francois Gouget fgouget at codeweavers.com
Mon Aug 10 13:38:27 EDT 2020


This makes it easier to figure out which plugins were involved when a
crash happens on startup.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 gui.c | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/gui.c b/gui.c
index 7bb5244..523c6a0 100644
--- a/gui.c
+++ b/gui.c
@@ -23,28 +23,36 @@ typedef struct S_PLUGINLIST
 const MojoGui *GGui = NULL;
 static PluginList *pluginDetails = NULL;
 
-static const MojoGuiEntryPoint staticGui[] =
+typedef struct StaticGuiPlugin
+{
+    const char* name;
+    const MojoGuiEntryPoint entry;
+} StaticGuiPlugin;
+
+#define STATIC_GUI_PLUGIN(name) {#name, MojoGuiPlugin_##name}
+static StaticGuiPlugin staticGui[] =
 {
 #if GUI_STATIC_LINK_STDIO
-    MojoGuiPlugin_stdio,
+    STATIC_GUI_PLUGIN(stdio),
 #endif
 #if GUI_STATIC_LINK_COCOA
-    MojoGuiPlugin_cocoa,
+    STATIC_GUI_PLUGIN(cocoa),
 #endif
 #if GUI_STATIC_LINK_GTKPLUS3
-    MojoGuiPlugin_gtkplus3,
+    STATIC_GUI_PLUGIN(gtkplus3),
 #endif
 #if GUI_STATIC_LINK_GTKPLUS2
-    MojoGuiPlugin_gtkplus2,
+    STATIC_GUI_PLUGIN(gtkplus2),
 #endif
 #if GUI_STATIC_LINK_WWW
-    MojoGuiPlugin_www,
+    STATIC_GUI_PLUGIN(www),
 #endif
 #if GUI_STATIC_LINK_NCURSES
-    MojoGuiPlugin_ncurses,
+    STATIC_GUI_PLUGIN(ncurses),
 #endif
-    NULL
+    {NULL, NULL}
 };
+#undef STATIC_GUI_PLUGIN
 
 
 static MojoGuiPluginPriority calcGuiPriority(const MojoGui *gui)
@@ -144,8 +152,11 @@ static PluginList *tryGuiPlugin(PluginList *plugins, MojoGuiEntryPoint entry)
 static void loadStaticGuiPlugins(PluginList *plugins)
 {
     int i;
-    for (i = 0; staticGui[i] != NULL; i++)
-        tryGuiPlugin(plugins, staticGui[i]);
+    for (i = 0; staticGui[i].entry != NULL; i++)
+    {
+        logInfo("Testing static GUI plugin %0", staticGui[i].name);
+        tryGuiPlugin(plugins, staticGui[i].entry);
+    }
 } // loadStaticGuiPlugins
 
 
@@ -203,6 +214,7 @@ static void loadDynamicGuiPlugins(PluginList *plugins)
             else if (strncmp(entinfo->filename, "guis/", 5) != 0)
                 continue;
 
+            logInfo("Testing dynamic GUI plugin %0", entinfo->filename);
             loadDynamicGuiPlugin(plugins, GBaseArchive);
         } // while
     } // if
-- 
2.20.1



More information about the mojosetup mailing list