]> code.delx.au - gnu-emacs/blobdiff - src/bytecode.c
Simplify push_handler and profile its malloc
[gnu-emacs] / src / bytecode.c
index 864db1a0bed394da04297e739b1f9a4ee05d910c..464adc633a896e64fc795cd32b93595101f2f480 100644 (file)
@@ -1067,17 +1067,13 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
          type = CATCHER;
          goto pushhandler;
        CASE (Bpushconditioncase): /* New in 24.4.  */
+         type = CONDITION_CASE;
+       pushhandler:
          {
-           struct handler *c;
-           Lisp_Object tag;
-           int dest;
+           Lisp_Object tag = POP;
+           int dest = FETCH2;
 
-           type = CONDITION_CASE;
-         pushhandler:
-           tag = POP;
-           dest = FETCH2;
-
-           PUSH_HANDLER (c, tag, type);
+           struct handler *c = push_handler (tag, type);
            c->bytecode_dest = dest;
            c->bytecode_top = top;