comparison src/bytecode.c @ 89978:566253900690

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-40 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-535 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-536 sync-tree with gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-537 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-538 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-539 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-540 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-541 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-542 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-545 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-546 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-547 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-548 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-549 Use symbol-matching for generic-mode keywords * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-550 Update from CVS * miles@gnu.org--gnu-2004/gnus--devo--0--patch-2 Add {arch}/=cvs-sync-make-log * miles@gnu.org--gnu-2004/gnus--rel--5.8--base-0 Import from Gnus CVS branch V5-8 * miles@gnu.org--gnu-2004/gnus--rel--5.8--patch-1 {arch}/=tagging-method: Add CVS and autoconf grot to junk regexp * miles@gnu.org--gnu-2004/gnus--rel--5.8--patch-2 Use explicit tags for autoconf input files * miles@gnu.org--gnu-2004/gnus--rel--5.8--patch-3 Remove RCS keywords * miles@gnu.org--gnu-2004/gnus--rel--5.8--patch-4 Fix copied explicit id-tags * miles@gnu.org--gnu-2004/gnus--rel--5.8--patch-5 Add {arch}/=cvs-sync-make-log * miles@gnu.org--gnu-2004/gnus--rel--5.8--patch-6 configure.in: Use ifelse instead of m4_if for arch-tag: comment * miles@gnu.org--gnu-2004/gnus--rel--5.10--base-0 tag of miles@gnu.org--gnu-2004/gnus--rel--5.8--base-0 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-1 Gnus 5.10, from CVS branch v5-10 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-2 Merge from gnus--rel--5.8 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-3 Use explicit tags for autoconf input files * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-4 sync-tree with gnus--rel--5.8 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-5 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-6 Merge from gnus--rel--5.8 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-7 Remove RCS keywords * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-8 Merge from gnus--rel--5.8 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-9 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-10 Add {arch}/=cvs-sync-make-log * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-11 Merge from gnus--rel--5.8 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-12 Update from CVS: make.bat: Fix line endings around arch-tag. * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-13 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-17 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-21 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-22 Update from CVS: lisp/nndb.el (require): Remove tcp and duplicate cl. * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-23 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-24 lisp/nnimap.el (nnimap-open-connection): Remove extraneous end-paren * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-25 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-26 Update from CVS
author Miles Bader <miles@gnu.org>
date Wed, 15 Sep 2004 09:00:10 +0000
parents d8411455de48 569cd6a5babd
children 01137c1fdbe9
comparison
equal deleted inserted replaced
89977:549fdd6f6856 89978:566253900690
1 /* Execution of byte code produced by bytecomp.el. 1 /* Execution of byte code produced by bytecomp.el.
2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003, 2004
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5 This file is part of GNU Emacs. 5 This file is part of GNU Emacs.
6 6
7 GNU Emacs is free software; you can redistribute it and/or modify 7 GNU Emacs is free software; you can redistribute it and/or modify
385 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ 385 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \
386 { \ 386 { \
387 Vquit_flag = Qnil; \ 387 Vquit_flag = Qnil; \
388 BEFORE_POTENTIAL_GC (); \ 388 BEFORE_POTENTIAL_GC (); \
389 Fsignal (Qquit, Qnil); \ 389 Fsignal (Qquit, Qnil); \
390 AFTER_POTENTIAL_GC (); \
390 } \ 391 } \
391 } while (0) 392 } while (0)
392 393
393 394
394 DEFUN ("byte-code", Fbyte_code, Sbyte_code, 3, 3, 0, 395 DEFUN ("byte-code", Fbyte_code, Sbyte_code, 3, 3, 0,
537 TOP = XCAR (v1); 538 TOP = XCAR (v1);
538 else if (NILP (v1)) 539 else if (NILP (v1))
539 TOP = Qnil; 540 TOP = Qnil;
540 else 541 else
541 { 542 {
542 BEFORE_POTENTIAL_GC (); 543 wrong_type_argument (Qlistp, v1);
543 Fcar (wrong_type_argument (Qlistp, v1));
544 AFTER_POTENTIAL_GC ();
545 } 544 }
546 break; 545 break;
547 } 546 }
548 547
549 case Beq: 548 case Beq:
572 TOP = XCDR (v1); 571 TOP = XCDR (v1);
573 else if (NILP (v1)) 572 else if (NILP (v1))
574 TOP = Qnil; 573 TOP = Qnil;
575 else 574 else
576 { 575 {
577 BEFORE_POTENTIAL_GC (); 576 wrong_type_argument (Qlistp, v1);
578 Fcdr (wrong_type_argument (Qlistp, v1));
579 AFTER_POTENTIAL_GC ();
580 } 577 }
581 break; 578 break;
582 } 579 }
583 580
584 case Bvarset: 581 case Bvarset:
905 if (CONSP (v1)) 902 if (CONSP (v1))
906 v1 = XCDR (v1); 903 v1 = XCDR (v1);
907 else if (!NILP (v1)) 904 else if (!NILP (v1))
908 { 905 {
909 immediate_quit = 0; 906 immediate_quit = 0;
910 BEFORE_POTENTIAL_GC (); 907 wrong_type_argument (Qlistp, v1);
911 v1 = wrong_type_argument (Qlistp, v1);
912 AFTER_POTENTIAL_GC ();
913 immediate_quit = 1;
914 op++;
915 } 908 }
916 } 909 }
917 immediate_quit = 0; 910 immediate_quit = 0;
918 if (CONSP (v1)) 911 if (CONSP (v1))
919 TOP = XCAR (v1); 912 TOP = XCAR (v1);
920 else if (NILP (v1)) 913 else if (NILP (v1))
921 TOP = Qnil; 914 TOP = Qnil;
922 else 915 else
923 { 916 wrong_type_argument (Qlistp, v1);
924 BEFORE_POTENTIAL_GC ();
925 Fcar (wrong_type_argument (Qlistp, v1));
926 AFTER_POTENTIAL_GC ();
927 }
928 break; 917 break;
929 } 918 }
930 919
931 case Bsymbolp: 920 case Bsymbolp:
932 TOP = SYMBOLP (TOP) ? Qt : Qnil; 921 TOP = SYMBOLP (TOP) ? Qt : Qnil;
1559 if (CONSP (v1)) 1548 if (CONSP (v1))
1560 v1 = XCDR (v1); 1549 v1 = XCDR (v1);
1561 else if (!NILP (v1)) 1550 else if (!NILP (v1))
1562 { 1551 {
1563 immediate_quit = 0; 1552 immediate_quit = 0;
1564 BEFORE_POTENTIAL_GC (); 1553 wrong_type_argument (Qlistp, v1);
1565 v1 = wrong_type_argument (Qlistp, v1);
1566 AFTER_POTENTIAL_GC ();
1567 immediate_quit = 1;
1568 op++;
1569 } 1554 }
1570 } 1555 }
1571 immediate_quit = 0; 1556 immediate_quit = 0;
1572 if (CONSP (v1)) 1557 if (CONSP (v1))
1573 TOP = XCAR (v1); 1558 TOP = XCAR (v1);
1574 else if (NILP (v1)) 1559 else if (NILP (v1))
1575 TOP = Qnil; 1560 TOP = Qnil;
1576 else 1561 else
1577 { 1562 wrong_type_argument (Qlistp, v1);
1578 BEFORE_POTENTIAL_GC ();
1579 Fcar (wrong_type_argument (Qlistp, v1));
1580 AFTER_POTENTIAL_GC ();
1581 }
1582 } 1563 }
1583 else 1564 else
1584 { 1565 {
1585 BEFORE_POTENTIAL_GC (); 1566 BEFORE_POTENTIAL_GC ();
1586 v1 = POP; 1567 v1 = POP;