From 148f25d3517dcdb32c566506e0cb0d6e632e4d23 Mon Sep 17 00:00:00 2001 From: rsc Date: Mon, 7 Nov 2005 02:46:38 +0000 Subject: debugging help --- src/libdraw/alloc.c | 3 +++ src/libdraw/init.c | 4 ++-- src/libdraw/x11-init.c | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libdraw/alloc.c b/src/libdraw/alloc.c index c1fbe5a2..53e9605b 100644 --- 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 index 2fe18d21..2357f0ef 100644 --- 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 index 72292671..a640e2ee 100644 --- 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; -- cgit v1.2.3