Use CAR_SAFE, CDR_SAFE for Bcar_safe, Bcdr_safe.
Simplify loops and use CAR for Bnth and Belt.
{
Lisp_Object v1;
v1 = TOP;
- if (CONSP (v1))
- TOP = XCAR (v1);
- else if (NILP (v1))
- TOP = Qnil;
- else
- wrong_type_argument (Qlistp, v1);
+ TOP = CAR (v1);
break;
}
{
Lisp_Object v1;
v1 = TOP;
- if (CONSP (v1))
- TOP = XCDR (v1);
- else if (NILP (v1))
- TOP = Qnil;
- else
- wrong_type_argument (Qlistp, v1);
+ TOP = CDR (v1);
break;
}
AFTER_POTENTIAL_GC ();
op = XINT (v2);
immediate_quit = 1;
- while (--op >= 0)
- {
- if (CONSP (v1))
- v1 = XCDR (v1);
- else if (!NILP (v1))
- {
- immediate_quit = 0;
- wrong_type_argument (Qlistp, v1);
- }
- }
+ while (--op >= 0 && CONSP (v1))
+ v1 = XCDR (v1);
immediate_quit = 0;
- if (CONSP (v1))
- TOP = XCAR (v1);
- else if (NILP (v1))
- TOP = Qnil;
- else
- wrong_type_argument (Qlistp, v1);
+ TOP = CAR (v1);
break;
}
AFTER_POTENTIAL_GC ();
op = XINT (v2);
immediate_quit = 1;
- while (--op >= 0)
- {
- if (CONSP (v1))
- v1 = XCDR (v1);
- else if (!NILP (v1))
- {
- immediate_quit = 0;
- wrong_type_argument (Qlistp, v1);
- }
- }
+ while (--op >= 0 && CONSP (v1))
+ v1 = XCDR (v1);
immediate_quit = 0;
- if (CONSP (v1))
- TOP = XCAR (v1);
- else if (NILP (v1))
- TOP = Qnil;
- else
- wrong_type_argument (Qlistp, v1);
+ TOP = CAR (v1);
}
else
{
{
Lisp_Object v1;
v1 = TOP;
- if (CONSP (v1))
- TOP = XCAR (v1);
- else
- TOP = Qnil;
+ TOP = CAR_SAFE (v1);
break;
}
{
Lisp_Object v1;
v1 = TOP;
- if (CONSP (v1))
- TOP = XCDR (v1);
- else
- TOP = Qnil;
+ TOP = CDR_SAFE (v1);
break;
}