|
|
1.1 root 1: #include <jstructs.h>
2:
3: #define rox r.origin.x
4: #define roy r.origin.y
5: #define rcx r.corner.x
6: #define rcy r.corner.y
7:
8: Bitmap *
9: balloc(r)
10: Rectangle r;
11: {
12: char *malloc(), *calloc();
13: register left, right;
14: register Bitmap *bp;
15:
16: if ((bp=(Bitmap *)malloc(sizeof(Bitmap))) == (Bitmap *)0)
17: return (Bitmap *)0;
18:
19: left = rox & ~WORDMASK;
20: if ((right=rcx) & WORDMASK) {
21: right |= WORDMASK;
22: right ++;
23: }
24: bp->width = (right-left)>>WORDSHIFT;
25: bp->rect = r;
26:
27: bp->base = (Word *)calloc(bp->width * (rcy-roy), sizeof(Word));
28: if (bp->base == (Word *)0){
29: free((char *)bp);
30: return (Bitmap *)0;
31: }
32: bp->_null=0;
33: return bp;
34: }
35:
36: bfree(bp)
37: register Bitmap *bp;
38: {
39: if (bp) {
40: free((char *)bp->base);
41: free((char *)bp);
42: }
43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.