aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-03-07 13:03:34 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2014-03-07 14:19:52 +0900
commita1e0ef4836f59a9fd5a2b44ecb94c27227e159c6 (patch)
tree11d85eba7dcb21c70ef013b971e0294bd65b0692
parent33392248136d030463f5bac15c3cacfde320972c (diff)
downloadlatinime-a1e0ef4836f59a9fd5a2b44ecb94c27227e159c6.tar.gz
latinime-a1e0ef4836f59a9fd5a2b44ecb94c27227e159c6.tar.xz
latinime-a1e0ef4836f59a9fd5a2b44ecb94c27227e159c6.zip
Fix: point to line segment distance can be NaN.
Change-Id: I7db6bfea925a0eda82bfb1f7b5e1110b193dabdb
-rw-r--r--native/jni/src/suggest/core/layout/proximity_info_utils.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/native/jni/src/suggest/core/layout/proximity_info_utils.h b/native/jni/src/suggest/core/layout/proximity_info_utils.h
index 6d2c11b09..f55ee23aa 100644
--- a/native/jni/src/suggest/core/layout/proximity_info_utils.h
+++ b/native/jni/src/suggest/core/layout/proximity_info_utils.h
@@ -100,6 +100,10 @@ class ProximityInfoUtils {
const float dotProduct = ray1x * ray2x + ray1y * ray2y;
const float lineLengthSqr = GeometryUtils::SQUARE_FLOAT(ray2x)
+ GeometryUtils::SQUARE_FLOAT(ray2y);
+ if (lineLengthSqr <= 0.0f) {
+ // Return point to the point distance.
+ return getSquaredDistanceFloat(x, y, x1, y1);
+ }
const float projectionLengthSqr = dotProduct / lineLengthSqr;
float projectionX;