]> git.eshelyaron.com Git - emacs.git/commitdiff
* doc.c (get_doc_string): Rework so that
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 18 Aug 2011 08:37:41 +0000 (01:37 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 18 Aug 2011 08:37:41 +0000 (01:37 -0700)
get_doc_string_buffer_size is the actual buffer size, rather than
being 1 less than the actual buffer size; this makes xpalloc more
convenient.

src/ChangeLog
src/doc.c

index 4613192187ea9ebf9c563125d4b9d43ec6d3c4ab..2677f03944f88de7e0cc01567caacca832c810cc 100644 (file)
@@ -2,6 +2,11 @@
 
        Integer and memory overflow issues (Bug#9196).
 
+       * doc.c (get_doc_string): Rework so that
+       get_doc_string_buffer_size is the actual buffer size, rather than
+       being 1 less than the actual buffer size; this makes xpalloc more
+       convenient.
+
        * image.c (x_allocate_bitmap_record, cache_image):
        * xselect.c (Fx_register_dnd_atom):
        Simplify previous changes by using xpalloc.
index eb8ff3c25210b5dca17d65b91809307751838916..83e943c42b87f78c473d3d5b15c9f527177e8e48 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -166,19 +166,19 @@ get_doc_string (Lisp_Object filepos, int unibyte, int definition)
   p = get_doc_string_buffer;
   while (1)
     {
-      ptrdiff_t space_left = (get_doc_string_buffer_size
+      ptrdiff_t space_left = (get_doc_string_buffer_size - 1
                              - (p - get_doc_string_buffer));
       int nread;
 
       /* Allocate or grow the buffer if we need to.  */
-      if (space_left == 0)
+      if (space_left <= 0)
        {
          ptrdiff_t in_buffer = p - get_doc_string_buffer;
          get_doc_string_buffer =
            xpalloc (get_doc_string_buffer, &get_doc_string_buffer_size,
                     16 * 1024, -1, 1);
          p = get_doc_string_buffer + in_buffer;
-         space_left = (get_doc_string_buffer_size
+         space_left = (get_doc_string_buffer_size - 1
                        - (p - get_doc_string_buffer));
        }