From bb00e1c6485a0962379bae0b769b4796044e4ffc Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 2 Jan 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-01-02 --- pc/devvga.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pc/devvga.c b/pc/devvga.c index 059a207b5510731942ec1fc853dae46847e0070d..1b593a3e65e9ff862471a1eecfbbae35197ab32a 100644 --- a/pc/devvga.c +++ b/pc/devvga.c @@ -475,8 +475,8 @@ x6to32(uchar x) void setscreen(int maxx, int maxy, int ldepth) { - int len, vgamaxy, width, i, x; - uchar *p; + int len, vgamaxy, width, i, x, s; + uchar *p, *oldp; if(ldepth == 3) setmode(&mode13); @@ -488,7 +488,7 @@ setscreen(int maxx, int maxy, int ldepth) len = width * BY2WD * maxy; p = xalloc(len); if(p == 0) - panic("can't alloc screen bitmap"); + error(Enobitstore); mbb = NULLMBB; /* @@ -511,15 +511,17 @@ setscreen(int maxx, int maxy, int ldepth) /* * setup new soft screen, free memory for old screen */ - if(gscreen.base) - xfree(gscreen.base); + oldp = gscreen.base; + s = splhi(); gscreen.ldepth = ldepth; gscreen.width = width; gscreen.r.min = Pt(0, 0); gscreen.r.max = Pt(maxx, maxy); gscreen.clipr = gscreen.r; gscreen.base = (ulong*)p; - memset(gscreen.base, 0xff, len); + splx(s); + if(oldp) + xfree(oldp); /* * set depth of cursor backup area