Tels <[EMAIL PROTECTED]> writes:
>
>Now, instead of malloc() a struct like:
>
>       struct BigInt {
>               int flags;
>               int sign;
>               double P;
>               double A;
>               SV* CALC;
>       };
>
>and then putting a ptr to it into the PV slot, I thought I could:

As I have said (at least twice recently) you can naturally do one of two things:

1. Get perl to Newz() you a struct in the PV
   e.g.
   SV *thing = newSV(sizeof(struct BigInt)); 
   struct BigInt *p = (struct BigInt *) SvPVX(sv);

I usually add:
   SvPOK_only(sv);
   SvREADONLY_on(sv);

OR

2. malloc() struct and put it in the IV
   e.g.   
   struct BigInt *p = (struct BigInt *) malloc(sizeof(struct BitInt));
   SV *thing = newSViv(PTR2IV(p));

DO NOT malloc() and put in PV slot. 

Then your input and output typemaps need to match eachother.

Reply via email to