package com.google.typography.font.tools.subsetter;
import com.google.typography.font.sfntly.data.ReadableFontData;
import com.google.typography.font.sfntly.data.WritableFontData;
import java.util.Map;
public class GlyphRenumberer
{
public static ReadableFontData renumberGlyph(ReadableFontData paramReadableFontData, Map<Integer, Integer> paramMap)
{
return isCompositeGlyph(paramReadableFontData) ? renumberCompositeGlyph(paramReadableFontData, paramMap) : paramReadableFontData;
}
private static boolean isCompositeGlyph(ReadableFontData paramReadableFontData)
{
return (paramReadableFontData.length() > 0) && (paramReadableFontData.readShort(Offset.numberOfContours.offset) < 0);
}
private static ReadableFontData renumberCompositeGlyph(ReadableFontData paramReadableFontData, Map<Integer, Integer> paramMap)
{
WritableFontData localWritableFontData = WritableFontData.createWritableFontData(paramReadableFontData.length());
paramReadableFontData.copyTo(localWritableFontData);
int i = 32;
int j = Offset.headerEnd.offset;
while ((i & 0x20) != 0)
{
i = paramReadableFontData.readUShort(j + Offset.compositeFlags.offset);
int k = paramReadableFontData.readUShort(j + Offset.compositeGlyphIndex.offset);
int m = ((Integer)paramMap.get(Integer.valueOf(k))).intValue();
localWritableFontData.writeUShort(j + Offset.compositeGlyphIndex.offset, m);
j += compositeReferenceSize(i);
}
return localWritableFontData;
}
private static int compositeReferenceSize(int paramInt)
{
int i = 6;
if ((paramInt & 0x1) != 0) {
i += 2;
}
if ((paramInt & 0x8) != 0) {
i += 2;
} else if ((paramInt & 0x40) != 0) {
i += 4;
} else if ((paramInt & 0x80) != 0) {
i += 8;
}
return i;
}
private static enum Offset
{
numberOfContours(0), headerEnd(10), compositeFlags(0), compositeGlyphIndex(2);
private final int offset;
private Offset(int paramInt)
{
this.offset = paramInt;
}
}
}
/* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\tools\subsetter\GlyphRenumberer.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/