[comp.databases] CData

cs00chs@unccvax.UUCP (charles spell) (08/04/89)

I have ported Cdata to UNIX. There was only a problem with the way that RPTRs
were referenced. On the Pyramid 9815 there was a bus error
whenever a RPTR variable was referenced on a non-word boundary, i.e., 

RPTR ad;
char *a;
ad = *((RPTR *) a + bheader[trx].keylength));

would cause a bus error if the right hand side was not a word-aligned pointer.

Solution. change all occurances of :
<RPTR var> = <address> TO mem_mov(<address>, &<RPTR var>, sizeof(RPTR))

the above expression would be changed to:
mem_mov(a + bheader[trx].keylength, &ad, sizeof(RPTR));

The rest of the port was simple.

---XXX