[gtk+] Fix casting problem in gmodule code.



commit fa00f3e50a4a5a16ca00b08308f7fa6008b45d3e
Author: Brian Cameron <Brian Cameron sun com>
Date:   Fri Apr 24 17:20:03 2009 -0500

    Fix casting problem in gmodule code.
    
    This fixes bug 579884.  Previously the return value of g_slist_find_custom was
    being recasted as type (GtkModuleInfo *).  This patch sets the return value
    to a temporary variable of type (GSList *), and sets info to temp->data.  This
    avoids a crashing problem.
---
 gtk/gtkmodules.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gtk/gtkmodules.c b/gtk/gtkmodules.c
index dddee9d..a6b40d8 100644
--- a/gtk/gtkmodules.c
+++ b/gtk/gtkmodules.c
@@ -289,9 +289,16 @@ load_module (GSList      *module_list,
 		g_module_close (module);
 	      else
 		{
+		  GSList *temp;
+
 		  success = TRUE;
-		  info = (GtkModuleInfo *) g_slist_find_custom (gtk_modules, module,
-								(GCompareFunc)cmp_module);
+		  info = NULL;
+
+		  temp = g_slist_find_custom (gtk_modules, module,
+			(GCompareFunc)cmp_module);
+		  if (temp != NULL)
+			info = temp->data;
+
 		  if (!info)
 		    {
 		      info = g_new0 (GtkModuleInfo, 1);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]