Fix htmlview segfaults.

PR:		ports/70596
Submitted by:	Andrey Slusar <anray@inet.ua>
This commit is contained in:
Kirill Ponomarev 2004-08-18 17:56:06 +00:00
parent 3afda59833
commit ba4538ccd1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=116609
3 changed files with 72 additions and 1 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= stuphead
PORTVERSION= 0.5.3
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= mail gnome
MASTER_SITES= http://stuphead.asplinux.ru/stuphead/

View File

@ -0,0 +1,11 @@
--- src/htmlview.c.old Tue Aug 17 23:56:37 2004
+++ src/htmlview.c Tue Aug 17 23:56:57 2004
@@ -59,7 +59,7 @@
HtmlView *htmlview_create(void)
{
- HtmlView *htmlview;
+ HtmlView *htmlview = NULL;
#ifdef USE_MOZILLA
GtkMozEmbed *mozwin;
gchar *mozpat;

View File

@ -0,0 +1,60 @@
--- src/messageview.c.orig Wed Aug 18 03:23:29 2004
+++ src/messageview.c Wed Aug 18 03:37:58 2004
@@ -80,7 +80,9 @@
imageview->messageview = messageview;
htmlview = htmlview_create();
- htmlview->messageview = messageview;
+ if(htmlview) {
+ htmlview->messageview = messageview;
+ }
mimeview = mimeview_create();
mimeview->textview = textview;
@@ -91,7 +93,9 @@
/* to remove without destroyed */
gtk_widget_ref(*(GtkWidget **)textview);
gtk_widget_ref(*(GtkWidget **)imageview);
- gtk_widget_ref(*(GtkWidget **)htmlview);
+ if(htmlview) {
+ gtk_widget_ref(*(GtkWidget **)htmlview);
+ }
gtk_widget_ref(*(GtkWidget **)mimeview);
paned = gtk_vpaned_new();
@@ -152,7 +156,9 @@
gtk_paned_add2(GTK_PANED(messageview->paned), *(GtkWidget **)textview);
#endif
- htmlview_init(messageview->htmlview);
+ if(messageview->htmlview) {
+ htmlview_init(messageview->htmlview);
+ }
mimeview_init(messageview->mimeview);
textview_init(messageview->textview);
imageview_init(messageview->imageview);
@@ -267,17 +273,21 @@
GtkWidget *textview = *(GtkWidget **)messageview->textview;
GtkWidget *imageview = *(GtkWidget **)messageview->imageview;
GtkWidget *mimeview = *(GtkWidget **)messageview->mimeview;
- GtkWidget *htmlview = *(GtkWidget **)messageview->htmlview;
+
+ if(messageview->htmlview) {
+ GtkWidget *htmlview = *(GtkWidget **)messageview->htmlview;
+ htmlview_destroy(messageview->htmlview);
+ gtk_widget_destroy(htmlview);
+ }
+
textview_destroy(messageview->textview);
imageview_destroy(messageview->imageview);
- htmlview_destroy(messageview->htmlview);
mimeview_destroy(messageview->mimeview);
g_free(messageview);
gtk_widget_unref(textview);
gtk_widget_unref(imageview);
- gtk_widget_unref(htmlview);
gtk_widget_unref(mimeview);
}