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.
This commit is contained in:
@ -289,9 +289,16 @@ load_module (GSList *module_list,
|
|||||||
g_module_close (module);
|
g_module_close (module);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
GSList *temp;
|
||||||
|
|
||||||
success = TRUE;
|
success = TRUE;
|
||||||
info = (GtkModuleInfo *) g_slist_find_custom (gtk_modules, module,
|
info = NULL;
|
||||||
|
|
||||||
|
temp = g_slist_find_custom (gtk_modules, module,
|
||||||
(GCompareFunc)cmp_module);
|
(GCompareFunc)cmp_module);
|
||||||
|
if (temp != NULL)
|
||||||
|
info = temp->data;
|
||||||
|
|
||||||
if (!info)
|
if (!info)
|
||||||
{
|
{
|
||||||
info = g_new0 (GtkModuleInfo, 1);
|
info = g_new0 (GtkModuleInfo, 1);
|
||||||
|
Reference in New Issue
Block a user