MOO-cows Mailing List Archive
[Prev][Next][Index][Thread]
Patch for LambdaMOO 1.8.0alpha6
-
Date: Tue, 6 Feb 1996 10:06:36 PST
-
From: Pavel Curtis <Pavel@parc.xerox.com>
-
Fake-Sender: pavel@parc.xerox.com
The following patch fixes a bug in the 1.8.0alpha6 release of the LambdaMOO
server; the bug can panic the server and lose DB changes. It is fixed in
1.8.0beta1, which I'll be releasing shortly, but here's the patch in the
meantime.
The bug is in the function decompile() in decompile.c and leads to log entries
like this:
*** PANIC: WHILE jumps to wrong place in DECOMPILE!
To fix it, find the OP_EIF case and add the line marked below with an arrow:
case OP_EIF:
{
unsigned next = READ_LABEL();
Expr *condition = pop_expr();
Stmt *arm_stmts;
Cond_Arm *arm;
unsigned done;
int jump_hot;
DECOMPILE(bc, ptr, bc.vector + next - jump_len, &arm_stmts, 0);
ADD_ARM(arm = alloc_cond_arm(condition, arm_stmts));
HOT_OP1(condition, arm);
done = READ_JUMP(jump_hot);
HOT_BOTTOM(jump_hot, arm);
if (bc.vector + done != end)
panic("ELSEIF jumps to wrong place in DECOMPILE!");
--> stmt_start = ptr - bc.vector;
}
break;
Sorry for the inconvenience,
Pavel
Home |
Subject Index |
Thread Index