(Fbyte_code): Avoid dangerous side effects in NILP argument.
This commit is contained in:
@@ -524,15 +524,19 @@ If the third argument is incorrect, Emacs may crash. */)
|
||||
}
|
||||
|
||||
case Bgotoifnil:
|
||||
MAYBE_GC ();
|
||||
op = FETCH2;
|
||||
if (NILP (POP))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
CHECK_RANGE (op);
|
||||
stack.pc = stack.byte_string_start + op;
|
||||
}
|
||||
break;
|
||||
{
|
||||
Lisp_Object v1;
|
||||
MAYBE_GC ();
|
||||
op = FETCH2;
|
||||
v1 = POP;
|
||||
if (NILP (v1))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
CHECK_RANGE (op);
|
||||
stack.pc = stack.byte_string_start + op;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Bcar:
|
||||
{
|
||||
@@ -730,15 +734,19 @@ If the third argument is incorrect, Emacs may crash. */)
|
||||
break;
|
||||
|
||||
case Bgotoifnonnil:
|
||||
MAYBE_GC ();
|
||||
op = FETCH2;
|
||||
if (!NILP (POP))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
CHECK_RANGE (op);
|
||||
stack.pc = stack.byte_string_start + op;
|
||||
}
|
||||
break;
|
||||
{
|
||||
Lisp_Object v1;
|
||||
MAYBE_GC ();
|
||||
op = FETCH2;
|
||||
v1 = POP;
|
||||
if (!NILP (v1))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
CHECK_RANGE (op);
|
||||
stack.pc = stack.byte_string_start + op;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Bgotoifnilelsepop:
|
||||
MAYBE_GC ();
|
||||
@@ -771,24 +779,32 @@ If the third argument is incorrect, Emacs may crash. */)
|
||||
break;
|
||||
|
||||
case BRgotoifnil:
|
||||
MAYBE_GC ();
|
||||
if (NILP (POP))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
stack.pc += (int) *stack.pc - 128;
|
||||
}
|
||||
stack.pc++;
|
||||
break;
|
||||
{
|
||||
Lisp_Object v1;
|
||||
MAYBE_GC ();
|
||||
v1 = POP;
|
||||
if (NILP (v1))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
stack.pc += (int) *stack.pc - 128;
|
||||
}
|
||||
stack.pc++;
|
||||
break;
|
||||
}
|
||||
|
||||
case BRgotoifnonnil:
|
||||
MAYBE_GC ();
|
||||
if (!NILP (POP))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
stack.pc += (int) *stack.pc - 128;
|
||||
}
|
||||
stack.pc++;
|
||||
break;
|
||||
{
|
||||
Lisp_Object v1;
|
||||
MAYBE_GC ();
|
||||
v1 = POP;
|
||||
if (!NILP (v1))
|
||||
{
|
||||
BYTE_CODE_QUIT;
|
||||
stack.pc += (int) *stack.pc - 128;
|
||||
}
|
||||
stack.pc++;
|
||||
break;
|
||||
}
|
||||
|
||||
case BRgotoifnilelsepop:
|
||||
MAYBE_GC ();
|
||||
|
||||
Reference in New Issue
Block a user