Author: jeremias
Date: Sat Jul  2 10:17:46 2011
New Revision: 1142188

URL: http://svn.apache.org/viewvc?rev=1142188&view=rev
Log:
Removed fallback mechanism in AbstractCodePointMapping. This is superfluous now 
that SingleByteFont handles all substitutions. This actually fixes a bug: the 
glyph "minus" was painted using "hyphen" but used the width of "minus" due to 
this fallback mechanism.

Modified:
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java?rev=1142188&r1=1142187&r2=1142188&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java
 Sat Jul  2 10:17:46 2011
@@ -20,12 +20,11 @@
 package org.apache.fop.fonts;
 
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
 
-import org.apache.fop.util.CharUtilities;
 import org.apache.xmlgraphics.fonts.Glyphs;
 
+import org.apache.fop.util.CharUtilities;
+
 /**
  * Abstract base class for code point mapping classes (1-byte character 
encodings).
  */
@@ -37,8 +36,6 @@ public class AbstractCodePointMapping im
     private char[] codepoints;
     private char[] unicodeMap; //code point to Unicode char
     private String[] charNameMap; //all character names in the encoding
-    //Here we accumulate all mappings we have found through substitution
-    private Map<Character, Character> fallbackMap;
 
     /**
      * Main constructor.
@@ -141,44 +138,9 @@ public class AbstractCodePointMapping im
                 bot = mid + 1;
             }
         }
-
-        //Fallback: using cache
-        synchronized (this) {
-            if (fallbackMap != null) {
-                Character fallback = fallbackMap.get(new Character(c));
-                if (fallback != null) {
-                    return fallback.charValue();
-                }
-            }
-        }
-        //Fallback: find alternatives (slow!)
-        String glyphName = Glyphs.charToGlyphName(c);
-        if (glyphName.length() > 0) {
-            String[] alternatives = 
Glyphs.getCharNameAlternativesFor(glyphName);
-            if (alternatives != null) {
-                for (int i = 0, ic = alternatives.length; i < ic; i++) {
-                    int idx = getCodePointForGlyph(alternatives[i]);
-                    if (idx >= 0) {
-                        putFallbackCharacter(c, (char)idx);
-                        return (char)idx;
-                    }
-                }
-            }
-        }
-
-        putFallbackCharacter(c, NOT_FOUND_CODE_POINT);
         return NOT_FOUND_CODE_POINT;
     }
 
-    private void putFallbackCharacter(char c, char mapTo) {
-        synchronized (this) {
-            if (this.fallbackMap == null) {
-                this.fallbackMap = new HashMap<Character, Character>();
-            }
-            this.fallbackMap.put(new Character(c), new Character(mapTo));
-        }
-    }
-
     /**
      * Returns the main Unicode value that is associated with the given code 
point in the encoding.
      * Note that multiple Unicode values can theoretically be mapped to one 
code point in the



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to