]> git.eshelyaron.com Git - emacs.git/commitdiff
Add assertion to STRING_SET_CHARS
authorEli Zaretskii <eliz@gnu.org>
Sun, 16 Apr 2017 07:27:23 +0000 (10:27 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 16 Apr 2017 07:27:23 +0000 (10:27 +0300)
* src/lisp.h (STRING_SET_CHARS): Add an assertion and commentary
to prevent incorrect usage.  For details, see this discussion:
http://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00412.html.

src/lisp.h

index 678e261c1dad83cf58d455989d1b3b0cc64410a1..e0bad58f758a1a72fb728bc7e1e59ac4e568d2f4 100644 (file)
@@ -1369,6 +1369,10 @@ SBYTES (Lisp_Object string)
 INLINE void
 STRING_SET_CHARS (Lisp_Object string, ptrdiff_t newsize)
 {
+  /* This function cannot change the size of data allocated for the
+     string when it was created.  */
+  eassert ((STRING_MULTIBYTE (string) && newsize <= SBYTES (string))
+          || (!STRING_MULTIBYTE (string) && newsize == SCHARS (string)));
   XSTRING (string)->size = newsize;
 }