]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
authorGerd Moellmann <gerd@gnu.org>
Wed, 26 Jan 2000 14:47:42 +0000 (14:47 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 26 Jan 2000 14:47:42 +0000 (14:47 +0000)
an error may be signalled.

src/ChangeLog
src/bytecode.c

index e2428088cffe5f94c1ddf2863f1a87d7ab72dee0..c2343b5a5934581bab2041be3978a2594950221b 100644 (file)
@@ -1,3 +1,8 @@
+2000-01-26  Dave Love  <fx@gnu.org>
+
+       * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
+       an error may be signalled.
+
 2000-01-26  Gerd Moellmann  <gerd@gnu.org>
 
        * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
index 084dfef6fb570dc2fb26d4245d9a111373e93484..52a0dba31d5c67b9d248c4b08b164ea752a337ca 100644 (file)
@@ -505,7 +505,11 @@ If the third argument is incorrect, Emacs may crash.")
            else if (NILP (v1))
              TOP = Qnil;
            else
-             Fcar (wrong_type_argument (Qlistp, v1));
+             {
+               BEFORE_POTENTIAL_GC ();
+               Fcar (wrong_type_argument (Qlistp, v1));
+               AFTER_POTENTIAL_GC ();
+             }
            break;
          }
 
@@ -534,7 +538,11 @@ If the third argument is incorrect, Emacs may crash.")
            else if (NILP (v1))
              TOP = Qnil;
            else
-             Fcdr (wrong_type_argument (Qlistp, v1));
+             {
+               BEFORE_POTENTIAL_GC ();
+               Fcdr (wrong_type_argument (Qlistp, v1));
+               AFTER_POTENTIAL_GC ();
+             }
            break;
          }
 
@@ -826,7 +834,9 @@ If the third argument is incorrect, Emacs may crash.")
            Lisp_Object v1, v2;
            v1 = POP;
            v2 = TOP;
+           BEFORE_POTENTIAL_GC ();
            CHECK_NUMBER (v2, 0);
+           AFTER_POTENTIAL_GC ();
            op = XINT (v2);
            immediate_quit = 1;
            while (--op >= 0)
@@ -836,7 +846,9 @@ If the third argument is incorrect, Emacs may crash.")
                else if (!NILP (v1))
                  {
                    immediate_quit = 0;
+                   BEFORE_POTENTIAL_GC ();
                    v1 = wrong_type_argument (Qlistp, v1);
+                   AFTER_POTENTIAL_GC ();
                    immediate_quit = 1;
                    op++;
                  }
@@ -847,7 +859,11 @@ If the third argument is incorrect, Emacs may crash.")
            else if (NILP (v1))
              TOP = Qnil;
            else
-             Fcar (wrong_type_argument (Qlistp, v1));
+             {
+               BEFORE_POTENTIAL_GC ();
+               Fcar (wrong_type_argument (Qlistp, v1));
+               AFTER_POTENTIAL_GC ();
+             }
            break;
          }
 
@@ -1022,8 +1038,10 @@ If the third argument is incorrect, Emacs may crash.")
          {
            Lisp_Object v1, v2;
            v2 = POP; v1 = TOP;
+           BEFORE_POTENTIAL_GC ();
            CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v1, 0);
            CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v2, 0);
+           AFTER_POTENTIAL_GC ();
 #ifdef LISP_FLOAT_TYPE
            if (FLOATP (v1) || FLOATP (v2))
              {
@@ -1270,7 +1288,9 @@ If the third argument is incorrect, Emacs may crash.")
          break;
 
        case Bchar_syntax:
+         BEFORE_POTENTIAL_GC ();
          CHECK_NUMBER (TOP, 0);
+         AFTER_POTENTIAL_GC ();
          XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (XINT (TOP))]);
          break;
 
@@ -1381,7 +1401,9 @@ If the third argument is incorrect, Emacs may crash.")
                /* Exchange args and then do nth.  */
                v2 = POP;
                v1 = TOP;
+               BEFORE_POTENTIAL_GC ();
                CHECK_NUMBER (v2, 0);
+               AFTER_POTENTIAL_GC ();
                op = XINT (v2);
                immediate_quit = 1;
                while (--op >= 0)
@@ -1391,7 +1413,9 @@ If the third argument is incorrect, Emacs may crash.")
                    else if (!NILP (v1))
                      {
                        immediate_quit = 0;
+                       BEFORE_POTENTIAL_GC ();
                        v1 = wrong_type_argument (Qlistp, v1);
+                       AFTER_POTENTIAL_GC ();
                        immediate_quit = 1;
                        op++;
                      }
@@ -1402,7 +1426,11 @@ If the third argument is incorrect, Emacs may crash.")
                else if (NILP (v1))
                  TOP = Qnil;
                else
-                 Fcar (wrong_type_argument (Qlistp, v1));
+                 {
+                   BEFORE_POTENTIAL_GC ();
+                   Fcar (wrong_type_argument (Qlistp, v1));
+                   AFTER_POTENTIAL_GC ();
+                 }
              }
            else
              {
@@ -1485,10 +1513,14 @@ If the third argument is incorrect, Emacs may crash.")
 
 #ifdef BYTE_CODE_SAFE
        case Bset_mark:
+         BEFORE_POTENTIAL_GC ();
          error ("set-mark is an obsolete bytecode");
+         AFTER_POTENTIAL_GC ();
          break;
        case Bscan_buffer:
+         BEFORE_POTENTIAL_GC ();
          error ("scan-buffer is an obsolete bytecode");
+         AFTER_POTENTIAL_GC ();
          break;
 #endif
 
@@ -1499,9 +1531,17 @@ If the third argument is incorrect, Emacs may crash.")
        default:
 #ifdef BYTE_CODE_SAFE
          if (op < Bconstant)
-           error ("unknown bytecode %d (byte compiler bug)", op);
+           {
+             BEFORE_POTENTIAL_GC ();
+             error ("unknown bytecode %d (byte compiler bug)", op);
+             AFTER_POTENTIAL_GC ();
+           }
          if ((op -= Bconstant) >= const_length)
-           error ("no constant number %d (byte compiler bug)", op);
+           {
+             BEFORE_POTENTIAL_GC ();
+             error ("no constant number %d (byte compiler bug)", op);
+             AFTER_POTENTIAL_GC ();
+           }
          PUSH (vectorp[op]);
 #else
          PUSH (vectorp[op - Bconstant]);