[evolution-patches] [Gtkhtml] Fix for #332807



Hi,

Bug #332807 - Copy contact to address book causes Evolution to crash.
http://bugzilla.gnome.org/show_bug.cgi?id=332807

Crash is caused by logging a critical message. When gtkhtml engine is
just initialized, clue is possibly NULL. To avoid logging a critical
message, check validity before invoking html_utils_get_accessible(). In
addition, initializing a11y object only when accessibility is enabled.

Sending a patch for review.

Regards,
-Simon
Index: a11y/ChangeLog
===================================================================
RCS file: /cvs/gnome/gtkhtml/a11y/ChangeLog,v
retrieving revision 1.27
diff -u -p -r1.27 ChangeLog
--- a11y/ChangeLog	17 Aug 2005 01:53:32 -0000	1.27
+++ a11y/ChangeLog	28 Feb 2006 03:19:23 -0000
@@ -1,3 +1,13 @@
+2006-02-28  Simon Zheng  <simon zheng sun com>
+
+	* factory.c: (gtk_html_accessibility_init): Initilize only when accessibility 
+	is enabled.
+	* object.c: (gtk_html_a11y_new): When engine is just initilized, clue is possibly
+	NULL. To avoid logging a critical message, check validity before invoking 
+	html_utils_get_accessible(). 
+
+	Fixes #332807
+
 2005-08-10  Mengjie Yu  <meng-jie yu sun com>
 
 	* text.c: (html_a11y_text_get_run_attributes):
Index: a11y/factory.c
===================================================================
RCS file: /cvs/gnome/gtkhtml/a11y/factory.c,v
retrieving revision 1.2
diff -u -p -r1.2 factory.c
--- a11y/factory.c	1 Nov 2002 15:34:27 -0000	1.2
+++ a11y/factory.c	28 Feb 2006 03:19:23 -0000
@@ -57,7 +57,8 @@ gtk_html_accessibility_init (void)
 	if (accessibility_initialized)
 		return;
 
-	atk_registry_set_factory_type (atk_get_default_registry (), GTK_TYPE_HTML, gtk_html_a11y_factory_get_type ());
+	if (atk_get_root())
+		atk_registry_set_factory_type (atk_get_default_registry (), GTK_TYPE_HTML, gtk_html_a11y_factory_get_type ());
 
 	accessibility_initialized = TRUE;
 }
Index: a11y/object.c
===================================================================
RCS file: /cvs/gnome/gtkhtml/a11y/object.c,v
retrieving revision 1.13
diff -u -p -r1.13 object.c
--- a11y/object.c	6 Jul 2005 10:35:00 -0000	1.13
+++ a11y/object.c	28 Feb 2006 03:19:23 -0000
@@ -419,7 +419,8 @@ gtk_html_a11y_new (GtkWidget *widget)
 			G_CALLBACK(gtk_html_a11y_delete_object_cb),
 			NULL);
 
-	html_utils_get_accessible(GTK_HTML(widget)->engine->clue, accessible);
+	if (GTK_HTML(widget)->engine->clue)
+		html_utils_get_accessible(GTK_HTML(widget)->engine->clue, accessible);
 
 	/* printf ("created new gtkhtml accessible object\n"); */
 


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