1*3ac0a46fSAndroid Build Coastguard Workerdiff --git a/third_party/agg23/agg_clip_liang_barsky.h b/third_party/agg23/agg_clip_liang_barsky.h 2*3ac0a46fSAndroid Build Coastguard Workerindex db6ca97..5b1261f 100644 3*3ac0a46fSAndroid Build Coastguard Worker--- a/third_party/agg23/agg_clip_liang_barsky.h 4*3ac0a46fSAndroid Build Coastguard Worker+++ b/third_party/agg23/agg_clip_liang_barsky.h 5*3ac0a46fSAndroid Build Coastguard Worker@@ -20,6 +20,7 @@ 6*3ac0a46fSAndroid Build Coastguard Worker #ifndef AGG_CLIP_LIANG_BARSKY_INCLUDED 7*3ac0a46fSAndroid Build Coastguard Worker #define AGG_CLIP_LIANG_BARSKY_INCLUDED 8*3ac0a46fSAndroid Build Coastguard Worker #include "agg_basics.h" 9*3ac0a46fSAndroid Build Coastguard Worker+#include "third_party/base/numerics/safe_math.h" 10*3ac0a46fSAndroid Build Coastguard Worker namespace agg 11*3ac0a46fSAndroid Build Coastguard Worker { 12*3ac0a46fSAndroid Build Coastguard Worker template<class T> 13*3ac0a46fSAndroid Build Coastguard Worker@@ -36,8 +37,18 @@ inline unsigned clip_liang_barsky(T x1, T y1, T x2, T y2, 14*3ac0a46fSAndroid Build Coastguard Worker T* x, T* y) 15*3ac0a46fSAndroid Build Coastguard Worker { 16*3ac0a46fSAndroid Build Coastguard Worker const float nearzero = 1e-30f; 17*3ac0a46fSAndroid Build Coastguard Worker- float deltax = (float)(x2 - x1); 18*3ac0a46fSAndroid Build Coastguard Worker- float deltay = (float)(y2 - y1); 19*3ac0a46fSAndroid Build Coastguard Worker+ 20*3ac0a46fSAndroid Build Coastguard Worker+ pdfium::base::CheckedNumeric<float> width = x2; 21*3ac0a46fSAndroid Build Coastguard Worker+ width -= x1; 22*3ac0a46fSAndroid Build Coastguard Worker+ if (!width.IsValid()) 23*3ac0a46fSAndroid Build Coastguard Worker+ return 0; 24*3ac0a46fSAndroid Build Coastguard Worker+ pdfium::base::CheckedNumeric<float> height = y2; 25*3ac0a46fSAndroid Build Coastguard Worker+ height -= y1; 26*3ac0a46fSAndroid Build Coastguard Worker+ if (!height.IsValid()) 27*3ac0a46fSAndroid Build Coastguard Worker+ return 0; 28*3ac0a46fSAndroid Build Coastguard Worker+ 29*3ac0a46fSAndroid Build Coastguard Worker+ float deltax = width.ValueOrDefault(0); 30*3ac0a46fSAndroid Build Coastguard Worker+ float deltay = height.ValueOrDefault(0); 31*3ac0a46fSAndroid Build Coastguard Worker unsigned np = 0; 32*3ac0a46fSAndroid Build Coastguard Worker if(deltax == 0) { 33*3ac0a46fSAndroid Build Coastguard Worker deltax = (x1 > clip_box.x1) ? -nearzero : nearzero; 34