diff options
| author | Miles Bader | 2006-01-16 08:37:27 +0000 |
|---|---|---|
| committer | Miles Bader | 2006-01-16 08:37:27 +0000 |
| commit | 41882805d6711e32ac0f066119226d84dbdedc13 (patch) | |
| tree | 44f756cef3fbc4de2f229e93613a1a326da7f55d /src/bytecode.c | |
| parent | 6a2bd1a5019d2130c87ac5cf17f1322bf614b624 (diff) | |
| parent | 28f74fdf77eaab2e9daf54e2d5b0b729c5201e4f (diff) | |
| download | emacs-41882805d6711e32ac0f066119226d84dbdedc13.tar.gz emacs-41882805d6711e32ac0f066119226d84dbdedc13.zip | |
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-97
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 616-696)
- Add lisp/mh-e/.arch-inventory
- Update from CVS
- Merge from gnus--rel--5.10
- Update from CVS: lisp/smerge-mode.el: Add 'tools' to file keywords.
- lisp/gnus/ChangeLog: Remove duplicate entry
* gnus--rel--5.10 (patch 147-181)
- Update from CVS
- Merge from emacs--cvs-trunk--0
- Update from CVS: lisp/mml.el (mml-preview): Doc fix.
- Update from CVS: texi/message.texi: Fix default values.
- Update from CVS: texi/gnus.texi (RSS): Addition.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 92 |
1 files changed, 54 insertions, 38 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 21e89d372c2..4a10d6091e7 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -524,15 +524,19 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 524 | } | 524 | } |
| 525 | 525 | ||
| 526 | case Bgotoifnil: | 526 | case Bgotoifnil: |
| 527 | MAYBE_GC (); | 527 | { |
| 528 | op = FETCH2; | 528 | Lisp_Object v1; |
| 529 | if (NILP (POP)) | 529 | MAYBE_GC (); |
| 530 | { | 530 | op = FETCH2; |
| 531 | BYTE_CODE_QUIT; | 531 | v1 = POP; |
| 532 | CHECK_RANGE (op); | 532 | if (NILP (v1)) |
| 533 | stack.pc = stack.byte_string_start + op; | 533 | { |
| 534 | } | 534 | BYTE_CODE_QUIT; |
| 535 | break; | 535 | CHECK_RANGE (op); |
| 536 | stack.pc = stack.byte_string_start + op; | ||
| 537 | } | ||
| 538 | break; | ||
| 539 | } | ||
| 536 | 540 | ||
| 537 | case Bcar: | 541 | case Bcar: |
| 538 | { | 542 | { |
| @@ -730,15 +734,19 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 730 | break; | 734 | break; |
| 731 | 735 | ||
| 732 | case Bgotoifnonnil: | 736 | case Bgotoifnonnil: |
| 733 | MAYBE_GC (); | 737 | { |
| 734 | op = FETCH2; | 738 | Lisp_Object v1; |
| 735 | if (!NILP (POP)) | 739 | MAYBE_GC (); |
| 736 | { | 740 | op = FETCH2; |
| 737 | BYTE_CODE_QUIT; | 741 | v1 = POP; |
| 738 | CHECK_RANGE (op); | 742 | if (!NILP (v1)) |
| 739 | stack.pc = stack.byte_string_start + op; | 743 | { |
| 740 | } | 744 | BYTE_CODE_QUIT; |
| 741 | break; | 745 | CHECK_RANGE (op); |
| 746 | stack.pc = stack.byte_string_start + op; | ||
| 747 | } | ||
| 748 | break; | ||
| 749 | } | ||
| 742 | 750 | ||
| 743 | case Bgotoifnilelsepop: | 751 | case Bgotoifnilelsepop: |
| 744 | MAYBE_GC (); | 752 | MAYBE_GC (); |
| @@ -771,24 +779,32 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 771 | break; | 779 | break; |
| 772 | 780 | ||
| 773 | case BRgotoifnil: | 781 | case BRgotoifnil: |
| 774 | MAYBE_GC (); | 782 | { |
| 775 | if (NILP (POP)) | 783 | Lisp_Object v1; |
| 776 | { | 784 | MAYBE_GC (); |
| 777 | BYTE_CODE_QUIT; | 785 | v1 = POP; |
| 778 | stack.pc += (int) *stack.pc - 128; | 786 | if (NILP (v1)) |
| 779 | } | 787 | { |
| 780 | stack.pc++; | 788 | BYTE_CODE_QUIT; |
| 781 | break; | 789 | stack.pc += (int) *stack.pc - 128; |
| 790 | } | ||
| 791 | stack.pc++; | ||
| 792 | break; | ||
| 793 | } | ||
| 782 | 794 | ||
| 783 | case BRgotoifnonnil: | 795 | case BRgotoifnonnil: |
| 784 | MAYBE_GC (); | 796 | { |
| 785 | if (!NILP (POP)) | 797 | Lisp_Object v1; |
| 786 | { | 798 | MAYBE_GC (); |
| 787 | BYTE_CODE_QUIT; | 799 | v1 = POP; |
| 788 | stack.pc += (int) *stack.pc - 128; | 800 | if (!NILP (v1)) |
| 789 | } | 801 | { |
| 790 | stack.pc++; | 802 | BYTE_CODE_QUIT; |
| 791 | break; | 803 | stack.pc += (int) *stack.pc - 128; |
| 804 | } | ||
| 805 | stack.pc++; | ||
| 806 | break; | ||
| 807 | } | ||
| 792 | 808 | ||
| 793 | case BRgotoifnilelsepop: | 809 | case BRgotoifnilelsepop: |
| 794 | MAYBE_GC (); | 810 | MAYBE_GC (); |
| @@ -861,11 +877,11 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 861 | 877 | ||
| 862 | case Bcondition_case: | 878 | case Bcondition_case: |
| 863 | { | 879 | { |
| 864 | Lisp_Object v1; | 880 | Lisp_Object handlers, body; |
| 865 | v1 = POP; | 881 | handlers = POP; |
| 866 | v1 = Fcons (POP, v1); | 882 | body = POP; |
| 867 | BEFORE_POTENTIAL_GC (); | 883 | BEFORE_POTENTIAL_GC (); |
| 868 | TOP = Fcondition_case (Fcons (TOP, v1)); | 884 | TOP = internal_lisp_condition_case (TOP, body, handlers); |
| 869 | AFTER_POTENTIAL_GC (); | 885 | AFTER_POTENTIAL_GC (); |
| 870 | break; | 886 | break; |
| 871 | } | 887 | } |