Files
c3c/resources/testfragments/casting.c3

49 lines
961 B
C

struct Pixmap
{
char *p;
int x;
int y;
int bpp;
}
fn void readpgm(char* name, Pixmap* p)
{
/* ... */
pnm_readpaminit(fp, &inpam);
p.x = inpam.width;
p.y = inpam.height;
if (!(p.p = malloc(@safe(p.x + p.y))))
{
@f1("Error at malloc");
}
for (int i = 0; i < inpam.height; i++)
{
pnm_readpamrow(&inpam, tuplerow)
{
for (int j = 0; j < inpam.width; j++)
{
p.p[@nowrap(i * inpam.width + j)] = sample;
}
};
}
}
fn void getComm(uint len, char* src)
{
uint size;
size = len - 2;
char* comm = malloc(size + 1);
mem::copy(comm, src, size);
}
fn uint* decode_fh(uint* p, SvcFh* fhp)
{
int size;
fh_init(fhp, NFS3_FHSIZE);
size = ntohl(*p++);
if (size > NFS3_FHSIZE) return NULL;
mem::copy(&fhp.fh_handle.fh_base, p, size);
fhp.fh_handle.fh_size = size;
return p + XDR_QUADLEN(size);
}