]> git.eshelyaron.com Git - emacs.git/commitdiff
* fringe.c (Fdefine_fringe_bitmap): Don't update size until alloc works.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 28 Jul 2011 23:47:01 +0000 (16:47 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 28 Jul 2011 23:47:01 +0000 (16:47 -0700)
src/ChangeLog
src/fringe.c

index e2b613d03c8fe8d2461c20fc91ae4d4ff3b4a901..058c250a33038641567b64a5370b6a675d19b2d3 100644 (file)
@@ -1,5 +1,7 @@
 2011-07-28  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * fringe.c (Fdefine_fringe_bitmap): Don't update size until alloc works.
+
        * frame.h (struct frame): Use int, not EMACS_INT, where int works.
        This is for the members text_lines, text_cols, total_lines, total_cols,
        where the system imposes an 'int' limit.
index a4dc9433aff51672b2071c397acff348e7d6ed34..5878c541247d60f4527aa1e158908b6b1ef80db6 100644 (file)
@@ -1610,22 +1610,25 @@ If BITMAP already exists, the existing definition is replaced.  */)
 
          if (n == max_fringe_bitmaps)
            {
-             if ((max_fringe_bitmaps + 20) > MAX_FRINGE_BITMAPS)
+             int bitmaps = max_fringe_bitmaps + 20;
+             if (MAX_FRINGE_BITMAPS < bitmaps)
                error ("No free fringe bitmap slots");
 
              i = max_fringe_bitmaps;
-             max_fringe_bitmaps += 20;
              fringe_bitmaps
                = ((struct fringe_bitmap **)
-                  xrealloc (fringe_bitmaps, max_fringe_bitmaps * sizeof (struct fringe_bitmap *)));
+                  xrealloc (fringe_bitmaps, bitmaps * sizeof *fringe_bitmaps));
              fringe_faces
-               = (Lisp_Object *) xrealloc (fringe_faces, max_fringe_bitmaps * sizeof (Lisp_Object));
+               = (Lisp_Object *) xrealloc (fringe_faces,
+                                           bitmaps * sizeof *fringe_faces);
 
-             for (; i < max_fringe_bitmaps; i++)
+             for (i = max_fringe_bitmaps; i < bitmaps; i++)
                {
                  fringe_bitmaps[i] = NULL;
                  fringe_faces[i] = Qnil;
                }
+
+             max_fringe_bitmaps = bitmaps;
            }
        }