Looks great to me - I've been looking for a way of simplifying that
process - Nice One!

Cheers.

On Sun, Sep 01, 2002 at 12:49:35AM +1000, Ken Williams wrote:
> Hi,
> 
> The C-Cookbook has the following code for doing object-oriented Inline:
> 
>      SV* new(char* class, char* name, char* rank, long serial) {
>          Soldier* soldier = malloc(sizeof(Soldier));
>          SV*      obj_ref = newSViv(0);
>          SV*      obj = newSVrv(obj_ref, class);
> 
>          soldier->name = strdup(name);
>          soldier->rank = strdup(rank);
>          soldier->serial = serial;
> 
>          sv_setiv(obj, (IV)soldier);
>          SvREADONLY_on(obj);
>          return obj_ref;
>      }
> 
> I've found that the following simpler code works just as well:
> 
>      SV* new(char* class, char* name, char* rank, long serial) {
>        Soldier* soldier = malloc(sizeof(Soldier));
> 
>        soldier->name = strdup(name);
>        soldier->rank = strdup(rank);
>        soldier->serial = serial;
> 
>        return sv_setref_pv(newSViv(0), class, (void *)soldier);
>      }
> 
> Any reason not to use that?
> 
>   -Ken

Reply via email to