vhardy 02/02/19 10:30:53
Modified: sources/org/apache/batik/bridge BridgeContext.java
SVGFontUtilities.java
Log:
Fixed bug reported by Keiron Liddle (#6536) after discussion with Thierry.
Revision Changes Path
1.35 +22 -1 xml-batik/sources/org/apache/batik/bridge/BridgeContext.java
Index: BridgeContext.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeContext.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- BridgeContext.java 15 Feb 2002 14:58:44 -0000 1.34
+++ BridgeContext.java 19 Feb 2002 18:30:53 -0000 1.35
@@ -47,7 +47,7 @@
* a SVG DOM tree such as the current viewport or the user agent.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: BridgeContext.java,v 1.34 2002/02/15 14:58:44 tkormann Exp $
+ * @version $Id: BridgeContext.java,v 1.35 2002/02/19 18:30:53 vhardy Exp $
*/
public class BridgeContext implements ErrorConstants {
@@ -69,6 +69,13 @@
protected Map interpreterMap = new HashMap(7);
/**
+ * A hash map of all the font families already matched. This is
+ * to reduce the number of instances of GVTFontFamilies and to
+ * hopefully reduce the time taken to search for a matching SVG font.
+ */
+ private static HashMap fontFamilyMap;
+
+ /**
* The viewports.
* key is an Element -
* value is a Viewport
@@ -209,6 +216,17 @@
}
/**
+ * Returns the map of font families
+ */
+ public HashMap getFontFamilyMap(){
+ if (fontFamilyMap == null){
+ fontFamilyMap = new HashMap();
+ }
+
+ return fontFamilyMap;
+ }
+
+ /**
* Returns the text painter that will be used be text nodes.
*/
public TextPainter getTextPainter() {
@@ -228,6 +246,9 @@
* @param document the document
*/
protected void setDocument(Document document) {
+ if (this.document != document){
+ fontFamilyMap = null;
+ }
this.document = document;
}
1.10 +3 -24 xml-batik/sources/org/apache/batik/bridge/SVGFontUtilities.java
Index: SVGFontUtilities.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFontUtilities.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SVGFontUtilities.java 6 Feb 2002 16:43:02 -0000 1.9
+++ SVGFontUtilities.java 19 Feb 2002 18:30:53 -0000 1.10
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (C) The Apache Software Foundation. All rights reserved. *
+ * Copyrightp (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
@@ -28,24 +28,9 @@
* Utility class for SVG fonts.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Bella Robinson</a>
- * @version $Id: SVGFontUtilities.java,v 1.9 2002/02/06 16:43:02 vhardy Exp $
+ * @version $Id: SVGFontUtilities.java,v 1.10 2002/02/19 18:30:53 vhardy Exp $
*/
public abstract class SVGFontUtilities implements SVGConstants {
-
-
- /**
- * A hash map of all the font families already matched. This is
- * to reduce the number of instances of GVTFontFamilies and to
- * hopefully reduce the time taken to search for a matching SVG font.
- */
- private static HashMap fontFamilyMap;
-
- /**
- * Keeps track of the currentDocument. This is used to detect when a new
- * document has been loaded.
- */
- private static Document currentDocument = null;
-
/**
* Given a font family name tries to find a matching SVG font object.
* If finds one, returns an SVGFontFamily otherwise returns an
@@ -67,17 +52,11 @@
String fontStyle) {
// TODO: should match against font-variant as well
-
- // if this is a new document reset the fontFamilyMap
- if (fontFamilyMap == null || textElement.getOwnerDocument() !=
currentDocument) {
- fontFamilyMap = new HashMap();
- currentDocument = textElement.getOwnerDocument();
- }
-
String fontKeyName = fontFamilyName.toLowerCase() + " " + fontWeight + " "
+ fontStyle;
// check fontFamilyMap to see if we have already created an FontFamily
// that matches
+ HashMap fontFamilyMap = ctx.getFontFamilyMap();
GVTFontFamily fontFamily = (GVTFontFamily)fontFamilyMap.get(fontKeyName);
if (fontFamily != null) {
return fontFamily;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]