Am Dienstag, 27. März 2007 19:52 schrieb Andy Dougherty:
> Instead of sprinking (opcode_t *) casts everywhere, wouldn't it be better
> to declare the invoke() function as returning an (opcode_t *) ?  

True. But while invoke() et al receive and return an (opcode_t*) the actual  
running runloop (with e.g. predereferenced runcores) wants a void**, which 
should OTOH not need a type cast.

E.g. in src/ops/core_ops_cgp.c

/* run_core_func_decl - tools/build/ops2c.pl -> Parrot::OpTrans::CPrederef */
void ** cgp_core(void **cur_op, Parrot_Interp interp)

The usage of properly declared void** op_ptrs inside that shouldn't trigger 
much need for casting as opcode_t*.

leo

Reply via email to