SF.net SVN: geany: [487] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Jun 26 15:49:12 UTC 2006


Revision: 487
Author:   ntrel
Date:     2006-06-26 08:49:07 -0700 (Mon, 26 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/geany/?rev=487&view=rev

Log Message:
-----------
Fix a possible segfault on quitting caused by processing GTK messages before status messages

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/document.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-06-25 20:30:33 UTC (rev 486)
+++ trunk/ChangeLog	2006-06-26 15:49:07 UTC (rev 487)
@@ -1,3 +1,9 @@
+2006-06-26  Nick Treleaven  <nick.treleaven at btinternet.com>
+
+ * src/document.c: Fix a possible segfault on quitting caused by
+                   processing GTK messages before status messages.
+
+
 2006-06-25  Enrico Troeger  <enrico.troeger at uvena.de>
 
  * README, doc/geany.docbook: Added license notice Scintilla.

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2006-06-25 20:30:33 UTC (rev 486)
+++ trunk/src/document.c	2006-06-26 15:49:07 UTC (rev 487)
@@ -525,16 +525,6 @@
 		utils_build_show_hide(idx);
 	}
 
-	// update sci to send SCN_UPDATEUI before we set status messages
-	while (gtk_events_pending())
-		gtk_main_iteration();
-	if (reload)
-		msgwin_status_add(_("File %s reloaded."), utf8_filename);
-	else
-		msgwin_status_add(_("File %s opened(%d%s)."),
-				utf8_filename, gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)),
-				(readonly) ? _(", read-only") : "");
-
 	document_set_text_changed(idx);
 
 	g_free(data);
@@ -552,6 +542,15 @@
 		utils_update_recent_menu();
 	}
 
+	// currently status messages are overridden by update sci SCN_UPDATEUI message
+	// processing gtk messages first causes a segfault on closing & reloading utils.c
+	if (reload)
+		msgwin_status_add(_("File %s reloaded."), utf8_filename);
+	else
+		msgwin_status_add(_("File %s opened(%d%s)."),
+				utf8_filename, gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)),
+				(readonly) ? _(", read-only") : "");
+
 	g_free(utf8_filename);
 	g_free(locale_filename);
 	//gettimeofday(&tv1, &tz);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Commits mailing list