|
|
researchv10 Norman
#include <stdio.h>
#include "jerq.h"
#include "balloc.h"
#include "commands.h"
Bitmap BMT[BMTsize];
int avail = -1;
Bitmap *balloc(r) Rectangle r;
{ int i;
if (avail<0) {
for (i=0; i<BMTsize; i++) BMT[i].jname = -1;
avail = 0;
}
else if (avail>BMTsize) {
fprintf(stderr,"BMT full\n");
return((Bitmap *) NULL);
}
else {
sendCommand(CCBALLOC);
sendInt(avail);
sendRect(r);
i = recInt();
if (i!=avail) {
fprintf(stderr, "balloc failed\n");
return((Bitmap *) NULL);
}
for (avail++; avail<BMTsize && BMT[avail].jname!=-1; avail++) ;
BMT[i].jname = i;
BMT[i].rect = r;
return(&BMT[i]);
}
}
void bfree(b) Bitmap *b;
{ int i;
if (b->jname > 0) fprintf(stderr,"BFREE: unknown Bitmap\n");
else {
sendCommand(CCBFREE);
sendInt(b->jname);
b->jname = -1;
i = BMT - b;
if (avail>i) avail = i;
}
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.