You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by de...@apache.org on 2002/04/25 02:45:42 UTC

cvs commit: xml-batik/sources/org/apache/batik/gvt/text GlyphIterator.java

deweese     02/04/24 17:45:42

  Modified:    sources/org/apache/batik/bridge
                        AbstractGraphicsNodeBridge.java
               sources/org/apache/batik/gvt/font SVGGVTGlyphVector.java
               sources/org/apache/batik/gvt/text GlyphIterator.java
  Log:
  1) Fixed a bug where elements without update handlers would cause an exception
  2) Fixed an off by one bug in GlyphIterator.
  
  Revision  Changes    Path
  1.24      +3 -2      xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java
  
  Index: AbstractGraphicsNodeBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- AbstractGraphicsNodeBridge.java	23 Apr 2002 17:10:13 -0000	1.23
  +++ AbstractGraphicsNodeBridge.java	25 Apr 2002 00:45:42 -0000	1.24
  @@ -44,7 +44,7 @@
    * </ul>
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: AbstractGraphicsNodeBridge.java,v 1.23 2002/04/23 17:10:13 tkormann Exp $
  + * @version $Id: AbstractGraphicsNodeBridge.java,v 1.24 2002/04/25 00:45:42 deweese Exp $
    */
   public abstract class AbstractGraphicsNodeBridge extends AbstractSVGBridge
       implements SVGContext, 
  @@ -207,7 +207,8 @@
           if (node instanceof SVGOMElement) {
               SVGOMElement elt = (SVGOMElement)node;
               BridgeUpdateHandler h = (BridgeUpdateHandler)elt.getSVGContext();
  -            h.dispose();
  +            if (h != null)
  +                h.dispose();
           }
           for (Node n = node.getFirstChild(); n!=null; n = n.getNextSibling()) {
               disposeTree(n);
  
  
  
  1.11      +2 -2      xml-batik/sources/org/apache/batik/gvt/font/SVGGVTGlyphVector.java
  
  Index: SVGGVTGlyphVector.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/font/SVGGVTGlyphVector.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SVGGVTGlyphVector.java	7 Mar 2002 22:07:44 -0000	1.10
  +++ SVGGVTGlyphVector.java	25 Apr 2002 00:45:42 -0000	1.11
  @@ -29,7 +29,7 @@
    * A GVTGlyphVector class for SVG fonts.
    *
    * @author <a href="mailto:bella.robinson@cmis.csiro.au">Bella Robinson</a>
  - * @version $Id: SVGGVTGlyphVector.java,v 1.10 2002/03/07 22:07:44 deweese Exp $
  + * @version $Id: SVGGVTGlyphVector.java,v 1.11 2002/04/25 00:45:42 deweese Exp $
    */
   public final class SVGGVTGlyphVector implements GVTGlyphVector {
   
  @@ -62,7 +62,7 @@
           for (int i = 0; i < glyphs.length; i++) {
               glyphVisible[i] = true;
           }
  -        
  +
           endPos = glyphs[glyphs.length-1].getPosition();
           endPos = new Point2D.Float
               ((float)(endPos.getX()+glyphs[glyphs.length-1].getHorizAdvX()),
  
  
  
  1.4       +10 -8     xml-batik/sources/org/apache/batik/gvt/text/GlyphIterator.java
  
  Index: GlyphIterator.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/text/GlyphIterator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- GlyphIterator.java	12 Apr 2002 14:36:48 -0000	1.3
  +++ GlyphIterator.java	25 Apr 2002 00:45:42 -0000	1.4
  @@ -174,24 +174,27 @@
   
       public float getMaxFontSize()  {
           if (aciIdx >= fontStart) {
  -            updateLineMetrics(aciIdx);
  -            fontStart = aciIdx + gv.getCharacterCount(idx,idx);
  +            int newFS = aciIdx + gv.getCharacterCount(idx,idx);
  +            updateLineMetrics(newFS);
  +            fontStart = newFS;
           }
           return maxFontSize; 
       }
   
       public float getMaxAscent()  { 
           if (aciIdx >= fontStart) {
  -            updateLineMetrics(aciIdx);
  -            fontStart = aciIdx + gv.getCharacterCount(idx,idx);
  +            int newFS = aciIdx + gv.getCharacterCount(idx,idx);
  +            updateLineMetrics(newFS);
  +            fontStart = newFS;
           }
           return maxAscent; 
       }
   
       public float getMaxDescent() { 
           if (aciIdx >= fontStart) {
  -            updateLineMetrics(aciIdx);
  -            fontStart = aciIdx + gv.getCharacterCount(idx,idx);
  +            int newFS = aciIdx + gv.getCharacterCount(idx,idx);
  +            updateLineMetrics(newFS);
  +            fontStart = newFS;
           }
           return maxDescent; 
       }
  @@ -263,14 +266,13 @@
               }
           }
   
  -        int preIncACIIdx = aciIdx;
           aciIdx += gv.getCharacterCount(idx,idx);
           ch = aci.setIndex(aciIdx);
           idx++;
           if (idx == numGlyphs) return;
   
           if (aciIdx >= runLimit) {
  -            updateLineMetrics(preIncACIIdx);
  +            updateLineMetrics(aciIdx);
               runLimit = aci.getRunLimit(TEXT_COMPOUND_DELIMITER);
               font     = (GVTFont)aci.getAttribute(GVT_FONT);
               if (font == null) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org