commit 148f25d3517dcdb32c566506e0cb0d6e632e4d23
parent 3fd51250be8cd6f6ac5df5342d3b81e6ed1c01a9
Author: rsc <devnull@localhost>
Date: Mon, 7 Nov 2005 02:46:38 +0000
debugging help
Diffstat:
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/libdraw/alloc.c b/src/libdraw/alloc.c
@@ -231,6 +231,9 @@ freeimage(Image *i)
{
int ret;
+ if(i == screen)
+ abort();
+
ret = _freeimage1(i);
free(i);
return ret;
diff --git a/src/libdraw/init.c b/src/libdraw/init.c
@@ -202,8 +202,8 @@ bufimage(Display *d, int n)
{
uchar *p;
- if(n<0 || n>d->bufsize){
-abort();
+ if(n<0 || d == nil || n>d->bufsize){
+ abort();
werrstr("bad count in bufimage");
return 0;
}
diff --git a/src/libdraw/x11-init.c b/src/libdraw/x11-init.c
@@ -137,8 +137,10 @@ getwindow(Display *d, int ref)
Image *i;
Image *oi;
- if(_x.destroyed)
+ if(_x.destroyed){
postnote(PNGROUP, getpgrp(), "hangup");
+ return -1;
+ }
if(xreplacescreenimage() == 0)
return 0;