aboutsummaryrefslogtreecommitdiffstats
path: root/decompile.c
diff options
context:
space:
mode:
authorbjj <bjj>1999-08-11 08:23:40 +0000
committerbjj <bjj>1999-08-11 08:23:40 +0000
commit886347318896e45289042c14b532e9ffcb693aa8 (patch)
tree3a76102b1d2cb4fa87d2b22c9b588c0160410491 /decompile.c
parent083d11d2d2d1accce42882f99202654a94fd4c05 (diff)
downloadmoo-cvs-886347318896e45289042c14b532e9ffcb693aa8.tar.gz
moo-cvs-886347318896e45289042c14b532e9ffcb693aa8.tar.xz
moo-cvs-886347318896e45289042c14b532e9ffcb693aa8.zip
Lineno computation could be wrong for forked vectors.
Diffstat (limited to 'decompile.c')
-rw-r--r--decompile.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/decompile.c b/decompile.c
index b7803ad..c2eb90f 100644
--- a/decompile.c
+++ b/decompile.c
@@ -972,7 +972,7 @@ find_line_number(Program * prog, int vector, int pc)
{
Stmt *tree;
- if (prog->cached_lineno_pc == pc)
+ if (prog->cached_lineno_pc == pc && prog->cached_lineno_vec == vector)
return prog->cached_lineno;
tree = program_to_tree(prog, MAIN_VECTOR, vector, pc);
@@ -984,6 +984,7 @@ find_line_number(Program * prog, int vector, int pc)
if (!hot_node && hot_position != DONE)
panic("Can't do job in FIND_LINE_NUMBER!");
+ prog->cached_lineno_vec = vector;
prog->cached_lineno_pc = pc;
prog->cached_lineno = lineno;
return lineno;
@@ -993,6 +994,9 @@ char rcsid_decompile[] = "$Id$";
/*
* $Log$
+ * Revision 1.5 1999/08/11 08:23:40 bjj
+ * Lineno computation could be wrong for forked vectors.
+ *
* Revision 1.4 1998/12/14 13:17:40 nop
* Merge UNSAFE_OPTS (ref fixups); fix Log tag placement to fit CVS whims
*