gug-bg-herd
[Top][All Lists]
Advanced

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

[kazehakase] Предотвратяване на SIGSEGV при провал на GRE glue


From: Yavor Doganov
Subject: [kazehakase] Предотвратяване на SIGSEGV при провал на GRE glue
Date: Thu, 01 Oct 2009 13:46:45 +0300
User-agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.7 Emacs/23.1 (i486-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

[Пак Kz -- извинявам се]

При дискусията по #548678 [1] (а и забелязах още предния път, когато
обсъждахме кръпката за GNU/Hurd) отговорника на xulrunner предлага да
се изобразява диалогов прозорец при грешка в инициализацията на
XPCOM glue.

Прилагам кратка кръпка -- не съм сигурен дали е напълно наред (иначе
постига желания резултат).  Струва ми се, че gtk_widget_destroy е
излишна.

[1] kazehakase: Transition to xulrunner 1.9.1
    http://bugs.debian.org/548678

2009-10-01  Yavor Doganov  <address@hidden>

        * module/embed/gecko/kz-gecko-embed-module.c
        (KZ_MODULE_IMPL_INIT): Check the return value of xulrunner_init;
        display an error dialog and terminate the application if
        initialization fails.


--- kazehakase-0.5.8.orig/module/embed/gecko/kz-gecko-embed-module.c
+++ kazehakase-0.5.8/module/embed/gecko/kz-gecko-embed-module.c
@@ -24,6 +24,8 @@
 #include "kz-gecko-single.h"
 #include "mozilla-prefs.h"
 #include "mozilla.h"
+#include <glib/gi18n.h>
+#include <stdlib.h>
 
 static KzGeckoSingle *gecko_single = NULL;
 
@@ -31,7 +33,20 @@
 KZ_MODULE_IMPL_INIT (GTypeModule *module)
 {
 #ifdef XPCOM_GLUE
-       xulrunner_init();
+       if (xulrunner_init() == FALSE)
+               {
+                       GtkWidget *dialog;
+
+                       dialog = gtk_message_dialog_new(NULL,
+                                                       
GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                       GTK_MESSAGE_ERROR,
+                                                       GTK_BUTTONS_CLOSE,
+                                                       _("Failed to initialize 
Gecko."));
+                       gtk_dialog_run(GTK_DIALOG(dialog));
+                       gtk_widget_destroy(dialog);
+
+                       exit(EXIT_FAILURE);
+               }
 #else
        gtk_moz_embed_set_comp_path(MOZILLA_HOME);
 #endif

reply via email to

[Prev in Thread] Current Thread [Next in Thread]