* 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.
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;
}