Branch: Tag:

2004-03-12

2004-03-12 21:56:52 by Martin Stjernholm <mast@lysator.liu.se>

Separated the return address from Pike_fp->pc. pc always points to the
current opcode now, which makes everything a lot simpler. This fixes
off-by-one bugs that could occur for the innermost line in backtraces when
machine code is used.

Rev: src/builtin.cmod:1.150
Rev: src/interpret.h:1.150
Rev: src/interpret_functions.h:1.164
Rev: src/opcodes.h:1.39
Rev: src/peep.c:1.98

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: interpret.h,v 1.149 2004/03/05 23:37:14 nilsson Exp $ + || $Id: interpret.h,v 1.150 2004/03/12 21:56:52 mast Exp $   */      #ifndef INTERPRET_H
57:    INT16 ident;    struct pike_frame *next;    struct pike_frame *scope; -  PIKE_OPCODE_T *pc; /* Program counter of last/next opcode. */ +  PIKE_OPCODE_T *pc; /* Address of current opcode. */ +  PIKE_OPCODE_T *return_addr; /* Address of opcode to continue at after call. */    struct svalue *locals; /* Start of local variables. */       /* This is <= locals, and this is where the