]> git.eshelyaron.com Git - emacs.git/commitdiff
(size_window): Prevent setting window's width or
authorGerd Moellmann <gerd@gnu.org>
Tue, 24 Oct 2000 14:05:50 +0000 (14:05 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 24 Oct 2000 14:05:50 +0000 (14:05 +0000)
height to a negative value (esp. with XSETFASTINT).

src/ChangeLog
src/window.c

index 6f4ba7a5b093bc7ffc64b624fc8d5ae6a1347d47..97995aca06bda0e78b9fdb786eef8a6240e67742 100644 (file)
@@ -1,5 +1,8 @@
 2000-10-24  Gerd Moellmann  <gerd@gnu.org>
 
+       * window.c (size_window): Prevent setting window's width or
+       height to a negative value (esp. with XSETFASTINT).
+
        * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
        [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
        (protect_malloc_state) [GC_MALLOC_CHECK &&
index 36f857e646567c61bd48a25b582544a8ac353a04..3f08e64a26b8bf3d5e0752d727d6d7d4db7c6f12 100644 (file)
@@ -2314,6 +2314,7 @@ size_window (window, size, width_p, nodelete_p)
   int old_size, min_size;
 
   check_min_window_sizes ();
+  size = max (0, size);
   
   /* If the window has been "too small" at one point,
      don't delete it for being "too small" in the future.
@@ -2350,22 +2351,22 @@ size_window (window, size, width_p, nodelete_p)
     }
 
   /* Set redisplay hints.  */
-  XSETFASTINT (w->last_modified, 0);
-  XSETFASTINT (w->last_overlay_modified, 0);
+  w->last_modified = make_number (0);
+  w->last_overlay_modified = make_number (0);
   windows_or_buffers_changed++;
-  FRAME_WINDOW_SIZES_CHANGED (XFRAME (WINDOW_FRAME (w))) = 1;
+  FRAME_WINDOW_SIZES_CHANGED (XFRAME (w->frame)) = 1;
 
   if (width_p)
     {
       sideward = &w->vchild;
       forward = &w->hchild;
-      XSETFASTINT (w->width, size);
+      w->width = make_number (size);
     }
   else
     {
       sideward = &w->hchild;
       forward = &w->vchild;
-      XSETFASTINT (w->height, size);
+      w->height = make_number (size);
     }
 
   if (!NILP (*sideward))