--- ray/src/common/octree.c 1991/11/12 16:55:14 2.1 +++ ray/src/common/octree.c 1998/08/24 16:38:44 2.4 @@ -34,7 +34,7 @@ octalloc() /* allocate an octree */ if (octbi(freet) >= MAXOBLK) return(EMPTY); if ((octblock[octbi(freet)] = (OCTREE *)bmalloc( - (unsigned)256*8*sizeof(OCTREE))) == NULL) + (unsigned)OCTBLKSIZ*8*sizeof(OCTREE))) == NULL) return(EMPTY); } treetop += 8; @@ -53,6 +53,21 @@ 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++) { + if (octblock[i] == NULL) + break; + bfree((char *)octblock[i], (unsigned)256*8*sizeof(OCTREE)); + octblock[i] = NULL; + } + ofreelist = EMPTY; + treetop = 0; }