devdraw: fix topnwindows() panic when images are not windows (thanks aiju)

Crashes drawterm and native:

#include <u.h>
#include <libc.h>
#include <draw.h>

void
main(int argc, char **argv)
{
 	initdraw(nil, nil, nil);

 	Image *a[] = {screen, display->black};

 	topnwindows(a, nelem(a));
 	flushimage(display, 1);
}
This commit is contained in:
cinap_lenrek 2020-01-12 00:07:27 +01:00
parent 5254e41f6b
commit 16784a2e45

View file

@ -2022,13 +2022,13 @@ drawmesg(Client *client, void *av, int n)
free(lp);
nexterror();
}
for(j=0; j<nw; j++)
for(j=0; j<nw; j++){
lp[j] = drawimage(client, a+1+1+2+j*4);
if(lp[0]->layer == 0)
error("images are not windows");
for(j=1; j<nw; j++)
if(lp[j]->layer == 0)
error("images are not windows");
if(lp[j]->layer->screen != lp[0]->layer->screen)
error("images not on same screen");
}
if(a[1])
memltofrontn(lp, nw);
else