On Wed, 24 Oct 2001, Simon Cozens wrote: > On Wed, Oct 24, 2001 at 01:56:01PM -0700, Brent Dax wrote: > > After thinking about this for a couple minutes, I came up with a > > solution involving a macro (I can hear the groans from here): > > #define VTABLE_CALL(vfunc, type) > > ((op_func_t)((INTVAL)vfunc+(INTVAL)type)) > > This is entirely my fault; I asked if this was sane C and it turned > out not to be. I need to revamp the multimethod business to use arrays.
The MIPSPro is getting annoyed about this as well, I think (I didn't notice this before as a gcc compiled version of vtable_ops.o confused make): cc-3316 cc: ERROR File = vtable_ops.c, Line = 49 The expression must be a pointer to a complete object type. (interpreter->pmc_reg->registers[cur_opcode[2]]->vtable->multiply_1 + interpreter->pmc_reg->registers[cur_opcode[3]]->vtable->num_type)(interpreter->pmc_reg->registers[cur_opcode[2]],interpreter->pmc_reg->registers[cur_opcode[3]],interpreter->pmc_reg->registers[cur_opcode[1]]); ^ > > Okay, can someone stop with the gcc-isms? > > Guilty again. But Alex Gough had a patch which fixed this, and I > thought he committed it. I didn't. I'm avoiding things not in t/, although I guess I could stop doing that. I'll continue not to commit the patch for now. Alex Gough -- He may look like an idiot, and talk like an idiot...but don't let that fool you. He really is an idiot.