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