[Prev][Next][Index][Thread]

# Patch for LambdaMOO 1.8.0alpha6

- Date: Tue, 6 Feb 1996 10:06:36 PST
- From:
- 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

- Prev: Patch for floating-point literal bug in 1.8.0beta1
- Next: Please no flames
- Index: MOO-cows
- Thread: MOO-cows

Home | Subject Index | Thread Index