commit d9110cac0b7310db7a48cba612a54e4da68f6150
parent 68858c703710cfd4613a5a320fc63de6915e8f59
Author: ukai <ukai>
Date: Wed, 25 Dec 2002 16:14:45 +0000
[w3m-dev 03602] Re: w3mimgdisplay core dump
* w3mimgdisplay.c (DrawImage): check load_image, imageBuf[n].pixmap
* w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): check img->pixmap
* w3mimg/x11/x11_w3mimg.c (x11_show_image): check img->pixmap
From: Hiroyuki Ito <hito@crl.go.jp>
Diffstat:
4 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,10 @@
+2002-12-26 Hiroyuki Ito <hito@crl.go.jp>
+
+ * [w3m-dev 03602] Re: w3mimgdisplay core dump
+ * w3mimgdisplay.c (DrawImage): check load_image, imageBuf[n].pixmap
+ * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): check img->pixmap
+ * w3mimg/x11/x11_w3mimg.c (x11_show_image): check img->pixmap
+
2002-12-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03601] Re: meta refresh
diff --git a/w3mimg/fb/fb_w3mimg.c b/w3mimg/fb/fb_w3mimg.c
@@ -87,6 +87,9 @@ w3mfb_show_image(w3mimg_op * self, W3MImage * img, int sx, int sy,
if (self == NULL)
return 0;
+ if (img->pixmap == NULL)
+ return 0;
+
frame = (FB_IMAGE **) img->pixmap;
i = frame[0]->id;
fb_image_draw(frame[i],
diff --git a/w3mimg/x11/x11_w3mimg.c b/w3mimg/x11/x11_w3mimg.c
@@ -355,6 +355,10 @@ x11_show_image(w3mimg_op * self, W3MImage * img, int sx, int sy, int sw,
#endif
if (self == NULL)
return 0;
+
+ if (img->pixmap == NULL)
+ return 0;
+
xi = (struct x11_info *)self->priv;
if (xi == NULL)
return 0;
diff --git a/w3mimgdisplay.c b/w3mimgdisplay.c
@@ -263,10 +263,12 @@ DrawImage(char *buf, int redraw)
imageBuf[n].pixmap = NULL;
}
- w_op->load_image(w_op, &imageBuf[n], p, w, h);
+ if (w_op->load_image(w_op, &imageBuf[n], p, w, h) == 0)
+ imageBuf[n].pixmap = NULL;
draw_image:
- w_op->show_image(w_op, &imageBuf[n], sx, sy, sw, sh, x, y);
+ if (imageBuf[n].pixmap)
+ w_op->show_image(w_op, &imageBuf[n], sx, sy, sw, sh, x, y);
}
void