Clamp instead of checked_cast in TT2PDF

Bug: chromium:727938
Change-Id: I85fe329c9d19c1dd1303279b0a9aade2fcc3211c
Reviewed-on: https://pdfium-review.googlesource.com/6814
Commit-Queue: Nicolás Peña <npm@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp
index bdd3464..82f9be3 100644
--- a/core/fpdfapi/font/cpdf_font.cpp
+++ b/core/fpdfapi/font/cpdf_font.cpp
@@ -6,6 +6,7 @@
 
 #include "core/fpdfapi/font/cpdf_font.h"
 
+#include <limits>
 #include <memory>
 #include <utility>
 #include <vector>
@@ -486,8 +487,11 @@
   int upm = FXFT_Get_Face_UnitsPerEM(face);
   if (upm == 0)
     return m;
-  return pdfium::base::checked_cast<int>(
-      (static_cast<double>(m) * 1000 + upm / 2) / upm);
+
+  return static_cast<int>(
+      pdfium::clamp((m * 1000.0 + upm / 2) / upm,
+                    static_cast<double>(std::numeric_limits<int>::min()),
+                    static_cast<double>(std::numeric_limits<int>::max())));
 }
 
 // static