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