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