You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by me...@apache.org on 2012/04/10 10:39:32 UTC
svn commit: r1311638 - in /xmlgraphics/fop/trunk:
src/java/org/apache/fop/afp/fonts/AFPFont.java
src/java/org/apache/fop/afp/fonts/CharacterSetBuilder.java
src/java/org/apache/fop/afp/fonts/RasterFont.java status.xml
Author: mehdi
Date: Tue Apr 10 08:39:31 2012
New Revision: 1311638
URL: http://svn.apache.org/viewvc?rev=1311638&view=rev
Log:
Bug in AFP font metrics that performed integer arithmetic when it should have been double arithemetic.
Also added some generics to the surrounding classes
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/AFPFont.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/CharacterSetBuilder.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/RasterFont.java
xmlgraphics/fop/trunk/status.xml
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/AFPFont.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/AFPFont.java?rev=1311638&r1=1311637&r2=1311638&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/AFPFont.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/AFPFont.java Tue Apr 10 08:39:31 2012
@@ -19,6 +19,7 @@
package org.apache.fop.afp.fonts;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -62,8 +63,8 @@ public abstract class AFPFont extends Ty
}
/** {@inheritDoc} */
- public Set getFamilyNames() {
- Set s = new java.util.HashSet();
+ public Set<String> getFamilyNames() {
+ Set<String> s = new HashSet<String>();
s.add(this.name);
return s;
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/CharacterSetBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/CharacterSetBuilder.java?rev=1311638&r1=1311637&r2=1311638&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/CharacterSetBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/CharacterSetBuilder.java Tue Apr 10 08:39:31 2012
@@ -285,12 +285,12 @@ public abstract class CharacterSetBuilde
CharacterSetOrientation[] characterSetOrientations
= processFontOrientation(structuredFieldReader);
- int metricNormalizationFactor;
+ double metricNormalizationFactor;
if (fontControl.isRelative()) {
metricNormalizationFactor = 1;
} else {
int dpi = fontControl.getDpi();
- metricNormalizationFactor = 1000 * 72000
+ metricNormalizationFactor = 1000.0d * 72000.0d
/ fontDescriptor.getNominalFontSizeInMillipoints() / dpi;
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/RasterFont.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/RasterFont.java?rev=1311638&r1=1311637&r2=1311638&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/RasterFont.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/afp/fonts/RasterFont.java Tue Apr 10 08:39:31 2012
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.SortedMap;
+import java.util.TreeMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -39,9 +40,8 @@ public class RasterFont extends AFPFont
/** Static logging instance */
protected static final Log LOG = LogFactory.getLog("org.apache.fop.afp.fonts");
- private final SortedMap/*<Integer,CharacterSet>*/ charSets
- = new java.util.TreeMap/*<Integer,CharacterSet>*/();
- private Map/*<Integer,CharacterSet>*/ substitutionCharSets;
+ private final SortedMap<Integer, CharacterSet> charSets = new TreeMap<Integer, CharacterSet>();
+ private Map<Integer, CharacterSet> substitutionCharSets;
private CharacterSet charSet = null;
@@ -92,8 +92,8 @@ public class RasterFont extends AFPFont
// No match or substitution found, but there exist entries
// for other sizes
// Get char set with nearest, smallest font size
- SortedMap smallerSizes = charSets.headMap(requestedSize);
- SortedMap largerSizes = charSets.tailMap(requestedSize);
+ SortedMap<Integer, CharacterSet> smallerSizes = charSets.headMap(requestedSize);
+ SortedMap<Integer, CharacterSet> largerSizes = charSets.tailMap(requestedSize);
int smallerSize = smallerSizes.isEmpty() ? 0
: ((Integer)smallerSizes.lastKey()).intValue();
int largerSize = largerSizes.isEmpty() ? Integer.MAX_VALUE
@@ -112,7 +112,7 @@ public class RasterFont extends AFPFont
// Add the substitute mapping, so subsequent calls will
// find it immediately
if (substitutionCharSets == null) {
- substitutionCharSets = new HashMap();
+ substitutionCharSets = new HashMap<Integer, CharacterSet>();
}
substitutionCharSets.put(requestedSize, csm);
// do not output the warning if the font size is closer to an integer less than 0.1
@@ -140,9 +140,9 @@ public class RasterFont extends AFPFont
* @return the first character in this font.
*/
public int getFirstChar() {
- Iterator it = charSets.values().iterator();
+ Iterator<CharacterSet> it = charSets.values().iterator();
if (it.hasNext()) {
- CharacterSet csm = (CharacterSet) it.next();
+ CharacterSet csm = it.next();
return csm.getFirstChar();
} else {
String msg = "getFirstChar() - No character set found for font:" + getFontName();
@@ -157,9 +157,9 @@ public class RasterFont extends AFPFont
*/
public int getLastChar() {
- Iterator it = charSets.values().iterator();
+ Iterator<CharacterSet> it = charSets.values().iterator();
if (it.hasNext()) {
- CharacterSet csm = (CharacterSet) it.next();
+ CharacterSet csm = it.next();
return csm.getLastChar();
} else {
String msg = "getLastChar() - No character set found for font:" + getFontName();
Modified: xmlgraphics/fop/trunk/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=1311638&r1=1311637&r2=1311638&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Tue Apr 10 08:39:31 2012
@@ -62,6 +62,10 @@
documents. Example: the fix of marks layering will be such a case when it's done.
-->
<release version="FOP Trunk" date="TBD">
+ <action context="Code" dev="MH" type="fix">
+ Bug in AFP font metrics that performed integer arithmetic when it should have been
+ double arithemetic.
+ </action>
<action context="Code" dev="GA" type="fix" fixes-bug="49754" due-to="Simon Pepping">
Bring clone() in line with the recommendations in Object.clone().
</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org