From: Eli Zaretskii Date: Sun, 16 Apr 2017 07:27:23 +0000 (+0300) Subject: Add assertion to STRING_SET_CHARS X-Git-Tag: emacs-26.0.90~521^2~623 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f3b24e90dc9fad355102e1fdf2828ca33d447a07;p=emacs.git Add assertion to STRING_SET_CHARS * 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. --- diff --git a/src/lisp.h b/src/lisp.h index 678e261c1da..e0bad58f758 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -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; }