You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2007/11/07 06:37:15 UTC
svn commit: r592616 -
/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java
Author: cam
Date: Tue Nov 6 21:37:08 2007
New Revision: 592616
URL: http://svn.apache.org/viewvc?rev=592616&view=rev
Log:
Avoid ClassCastException when checking for zero-dimension gradient
bounding boxes.
Modified:
xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java?rev=592616&r1=592615&r2=592616&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java Tue Nov 6 21:37:08 2007
@@ -24,9 +24,11 @@
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
+import org.apache.batik.dom.svg.SVGContext;
import org.apache.batik.ext.awt.LinearGradientPaint;
import org.apache.batik.ext.awt.MultipleGradientPaint;
import org.apache.batik.gvt.GraphicsNode;
+
import org.w3c.dom.Element;
/**
@@ -116,10 +118,11 @@
// The last paragraph of section 7.11 in SVG 1.1 states that objects
// with zero width or height bounding boxes that use gradients with
// gradientUnits="objectBoundingBox" must not use the gradient.
- AbstractGraphicsNodeBridge bridge = (AbstractGraphicsNodeBridge)
- BridgeContext.getSVGContext(paintedElement);
- if (bridge != null) {
- Rectangle2D bbox = bridge.getBBox();
+ SVGContext bridge = BridgeContext.getSVGContext(paintedElement);
+ if (bridge instanceof AbstractGraphicsNodeBridge) {
+ // XXX Make this work for non-AbstractGraphicsNodeBridges, like
+ // the various text child bridges.
+ Rectangle2D bbox = ((AbstractGraphicsNodeBridge) bridge).getBBox();
if (bbox != null && bbox.getWidth() == 0 || bbox.getHeight() == 0) {
return null;
}