2005-04-18 Roman Kennke <roman@kennke.org>
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Apr 2005 20:47:01 +0000 (20:47 +0000)
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Apr 2005 20:47:01 +0000 (20:47 +0000)
* java/awt/BorderLayout.java
(calcSize): Check for overflow when component sizes are added.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98347 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/awt/BorderLayout.java

index 3e9ba57..6a96409 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-18  Roman Kennke  <roman@kennke.org>
+
+       * java/awt/BorderLayout.java
+       (calcSize): Check for overflow when component sizes are added.
+
 2005-04-18  Robert Schuster <thebohemian@gmx.net>
 
        * java/awt/AWTEvent.java (toString): Added case
index 7a955d3..284faf0 100644 (file)
@@ -700,6 +700,10 @@ calcSize(Container target, int what)
       Dimension cdim = calcCompSize(center, what);
 
       int width = edim.width + cdim.width + wdim.width + (hgap * 2);
+      // check for overflow
+      if (width < edim.width || width < cdim.width || width < cdim.width)
+          width = Integer.MAX_VALUE;
+
       if (ndim.width > width)
        width = ndim.width;
       if (sdim.width > width)
@@ -713,7 +717,13 @@ calcSize(Container target, int what)
       if (wdim.height > height)
        height = wdim.height;
 
-      height += (ndim.height + sdim.height + (vgap * 2) + ins.top + ins.bottom);
+      int addedHeight = height + (ndim.height + sdim.height + (vgap * 2)
+                                  + ins.top + ins.bottom);
+      // check for overflow
+      if (addedHeight < height)
+          height = Integer.MAX_VALUE;
+      else
+          height = addedHeight;
 
       return(new Dimension(width, height));
     }