Re: prederef problem

2002-01-05 Thread Gregor N. Purdy
Bryan -- static void ** prederef(void ** pc_prederef, struct Parrot_Interp * interpreter) { size_t offset = pc_prederef - interpreter-prederef_code; opcode_t * pc = ((opcode_t *)interpreter-code-byte_code) + offset; This is supposed to be calculating offset =

prederef problem

2002-01-04 Thread Bryan C. Warnock
Gregor, You've got a disaster waiting to happen when sizeof(pointer) != sizeof(opcode). (64 bit/32 bit mix would be valid.) interpreter.c, line 204: static void ** prederef(void ** pc_prederef, struct Parrot_Interp * interpreter) { size_t offset =

Re: prederef problem

2002-01-04 Thread Gregor N. Purdy
Bryan -- Thanks for the message. You've got a disaster waiting to happen when sizeof(pointer) != sizeof(opcode). (64 bit/32 bit mix would be valid.) My intent in allocating a second memory block as an array of (void *) was to make sure that I handled this case, even though it does not

Re: prederef problem

2002-01-04 Thread Bryan C. Warnock
On Friday 04 January 2002 11:38 pm, Gregor N. Purdy wrote: You point out a place where I'm trying to resynch pc (which points into real bytecode) with pc_prederef (which points into the array of void *s): interpreter.c, line 204: static void **