]> code.delx.au - gnu-emacs/commitdiff
Improve CHECK_IMPURE and PURE_P speedup
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 10 Oct 2015 22:46:28 +0000 (15:46 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 10 Oct 2015 22:46:55 +0000 (15:46 -0700)
* src/data.c (Faset): Use XVECTOR and XSTRING rather than XPNTR.

src/data.c

index a910f6e58f3b666bffe3222d75faf18d2925fbfb..b85d8a77106abf4bbfc6e311e2cfe9e30dc3f0ec 100644 (file)
@@ -2215,10 +2215,10 @@ bool-vector.  IDX starts at 0.  */)
   CHECK_NUMBER (idx);
   idxval = XINT (idx);
   CHECK_ARRAY (array, Qarrayp);
-  CHECK_IMPURE (array, XPNTR (array));
 
   if (VECTORP (array))
     {
+      CHECK_IMPURE (array, XVECTOR (array));
       if (idxval < 0 || idxval >= ASIZE (array))
        args_out_of_range (array, idx);
       ASET (array, idxval, newelt);
@@ -2238,6 +2238,7 @@ bool-vector.  IDX starts at 0.  */)
     {
       int c;
 
+      CHECK_IMPURE (array, XSTRING (array));
       if (idxval < 0 || idxval >= SCHARS (array))
        args_out_of_range (array, idx);
       CHECK_CHARACTER (newelt);