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]