From a1e0ef4836f59a9fd5a2b44ecb94c27227e159c6 Mon Sep 17 00:00:00 2001
From: Keisuke Kuroyanagi <ksk@google.com>
Date: Fri, 7 Mar 2014 13:03:34 +0900
Subject: [PATCH] Fix: point to line segment distance can be NaN.

Change-Id: I7db6bfea925a0eda82bfb1f7b5e1110b193dabdb
---
 native/jni/src/suggest/core/layout/proximity_info_utils.h | 4 ++++
 1 file changed, 4 insertions(+)

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 6d2c11b091..f55ee23aa3 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;
-- 
GitLab