Small optimization

Change-Id: I5dd7c848f2aaec20325e7ee85f27e282e1ba7a85
main
Jean Chalard 2012-03-23 17:03:55 +09:00
parent 3d3ee645cc
commit e5f02cff7a
1 changed files with 3 additions and 4 deletions

View File

@ -39,7 +39,7 @@ public class SpellCheckerProximityInfo {
final protected static void buildProximityIndices(final int[] proximity,
final TreeMap<Integer, Integer> indices) {
for (int i = 0; i < proximity.length; i += ROW_SIZE) {
if (NUL != proximity[i]) indices.put(proximity[i], i);
if (NUL != proximity[i]) indices.put(proximity[i], i / ROW_SIZE);
}
}
final protected static int computeIndex(final int characterCode,
@ -198,9 +198,8 @@ public class SpellCheckerProximityInfo {
// inferior to 1 << 16
public static int getXYForCodePointAndScript(final int codePoint, final int script) {
final int index = getIndexOfCodeForScript(codePoint, script);
// TODO: precompute index / ROW_SIZE
final int y = index / (PROXIMITY_GRID_WIDTH * ROW_SIZE);
final int x = (index / ROW_SIZE) % PROXIMITY_GRID_WIDTH;
final int y = index / PROXIMITY_GRID_WIDTH;
final int x = index % PROXIMITY_GRID_WIDTH;
if (y > PROXIMITY_GRID_HEIGHT) {
// Safety check, should be entirely useless
throw new RuntimeException("Wrong y coordinate in spell checker proximity");