--- ray/src/common/octree.c 1989/10/14 10:56:32 1.2 +++ ray/src/common/octree.c 1997/03/07 15:45:30 2.2 @@ -33,7 +33,7 @@ octalloc() /* allocate an octree */ errno = 0; if (octbi(freet) >= MAXOBLK) return(EMPTY); - if ((octblock[octbi(freet)] = (OCTREE *)malloc( + if ((octblock[octbi(freet)] = (OCTREE *)bmalloc( (unsigned)256*8*sizeof(OCTREE))) == NULL) return(EMPTY); } @@ -53,6 +53,19 @@ register OCTREE ot; octfree(octkid(ot, i)); octkid(ot, 0) = ofreelist; ofreelist = ot; +} + + +octdone() /* free EVERYTHING */ +{ + register int i; + + for (i = 0; i < MAXOBLK; i++) { + bfree((char *)octblock[i], (unsigned)256*8*sizeof(OCTREE)); + octblock[i] = NULL; + } + ofreelist = EMPTY; + treetop = 0; }