I tried the Swing demo vs. Java2D (Cairo). This gave me some NPEs that
are fixed by this patch. It adds a check in
GdkGraphics2D.getClipBounds() so it does not throw an NPE when accessing
a null clip and it adds a check in JComponent.paint() so when a null
clip is encountered it sets the clip to the componenents bounds.
2005-09-24  Roman Kennke  <[EMAIL PROTECTED]>

        * javax/swing/JComponent.java
        (paint): Check if clip == null and if so set it to the
component's
        bounds.
        * gnu/java/awt/peer/gtk/GdkGraphics2D.java
        (getClipBounds): Added null check so that null is returned when
        clip == null, instead of throwing an NPE while accessing
        null.getBounds2D().

/Roman
Index: javax/swing/JComponent.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/JComponent.java,v
retrieving revision 1.60
diff -u -r1.60 JComponent.java
--- javax/swing/JComponent.java	24 Sep 2005 20:40:21 -0000	1.60
+++ javax/swing/JComponent.java	24 Sep 2005 21:58:45 -0000
@@ -1469,6 +1469,8 @@
       paintDoubleBuffered(g);
     else
       {
+        if (g.getClip() == null)
+          g.setClip(0, 0, getWidth(), getHeight());
         paintComponent(g);
         paintBorder(g);
         paintChildren(g);
Index: gnu/java/awt/peer/gtk/GdkGraphics2D.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GdkGraphics2D.java,v
retrieving revision 1.49
diff -u -r1.49 GdkGraphics2D.java
--- gnu/java/awt/peer/gtk/GdkGraphics2D.java	23 Sep 2005 21:36:42 -0000	1.49
+++ gnu/java/awt/peer/gtk/GdkGraphics2D.java	24 Sep 2005 21:58:47 -0000
@@ -966,7 +966,10 @@
 
   public Shape getClip()
   {
-    return clip.getBounds2D(); //getClipInDevSpace();
+    if (clip == null)
+      return null;
+    else
+      return clip.getBounds2D(); //getClipInDevSpace();
   }
 
   public Rectangle getClipBounds()

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

_______________________________________________
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to