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 =
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 =
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
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 **