At 01:59 AM 1/1/2002 +0000, Nicholas Clark wrote: >On Mon, Dec 31, 2001 at 06:19:22PM -0500, Dan Sugalski wrote: > > At 11:10 PM 12/31/2001 +0000, Nicholas Clark wrote: > > >But is the correct correction to swap the parameters > > > > > >((op_func_prederef_t)*pc_prederef) (interpreter, pc_prederef); > > > > > >or to change the typedef? > > > > The functions all take the interpreter argument second. First arg is a > > pointer to an opcode_t, the second a pointer to the interpreter structure. > >I believe that the only clean way to deal with the runops_prederef array >being of lots of C<void *>s is to make the other parts of parrot honest. >It's not actually an array of bytecode, so this patch makes everything >treat it as void *, not opcode_t.
Fair enough. >So I may have done something very stupid. But all the compiler warnings go >away. Also, please realise that I've only been looking at this code for a few >hours so I although I think I've figured out roughly what it's doing. >[and I did laugh out loud when I finally realised what cunning tricks it is >doing to replace the deref function with the pointer to the opcode function, >and return the same address so that the run loop calls the real function at >that point] It is rather clever, isn't it? Gregor's done some rather nifty things. Anyway, I've applied your patch. Thanks. Dan --------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk