diff options
author | bjj <bjj> | 1999-08-11 08:23:40 +0000 |
---|---|---|
committer | bjj <bjj> | 1999-08-11 08:23:40 +0000 |
commit | 886347318896e45289042c14b532e9ffcb693aa8 (patch) | |
tree | 3a76102b1d2cb4fa87d2b22c9b588c0160410491 | |
parent | 083d11d2d2d1accce42882f99202654a94fd4c05 (diff) | |
download | moo-886347318896e45289042c14b532e9ffcb693aa8.tar.gz moo-886347318896e45289042c14b532e9ffcb693aa8.tar.xz moo-886347318896e45289042c14b532e9ffcb693aa8.zip |
Lineno computation could be wrong for forked vectors.
-rw-r--r-- | decompile.c | 6 |
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 * |