diff options
author | Miles Bader <miles@gnu.org> | 2006-01-16 08:37:27 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 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.tar.bz2 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. */) } 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 (); @@ -861,11 +877,11 @@ If the third argument is incorrect, Emacs may crash. */) case Bcondition_case: { - Lisp_Object v1; - v1 = POP; - v1 = Fcons (POP, v1); + Lisp_Object handlers, body; + handlers = POP; + body = POP; BEFORE_POTENTIAL_GC (); - TOP = Fcondition_case (Fcons (TOP, v1)); + TOP = internal_lisp_condition_case (TOP, body, handlers); AFTER_POTENTIAL_GC (); break; } |