Jon Ciesla bf231a
From 6433a64f4cd41e88499386b0b7c7ae05d30683b8 Mon Sep 17 00:00:00 2001
Jon Ciesla bf231a
From: Tom Hughes <tom@compton.nu>
Jon Ciesla bf231a
Date: Sat, 22 Jun 2013 12:33:32 +0100
Jon Ciesla bf231a
Subject: [PATCH 14/15] Avoid potential zero division resulting in nan in
Jon Ciesla bf231a
 agg::gamma_linear
Jon Ciesla bf231a
Jon Ciesla bf231a
---
Jon Ciesla bf231a
 include/agg_gamma_functions.h | 6 +++++-
Jon Ciesla bf231a
 1 file changed, 5 insertions(+), 1 deletion(-)
Jon Ciesla bf231a
Jon Ciesla bf231a
diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h
Jon Ciesla bf231a
index fa38a45..beb0c04 100644
Jon Ciesla bf231a
--- a/include/agg_gamma_functions.h
Jon Ciesla bf231a
+++ b/include/agg_gamma_functions.h
Jon Ciesla bf231a
@@ -94,7 +94,11 @@ namespace agg
Jon Ciesla bf231a
         {
Jon Ciesla bf231a
             if(x < m_start) return 0.0;
Jon Ciesla bf231a
             if(x > m_end) return 1.0;
Jon Ciesla bf231a
-            return (x - m_start) / (m_end - m_start);
Jon Ciesla bf231a
+            double delta = m_end - m_start;
Jon Ciesla bf231a
+            // avoid nan from potential zero division
Jon Ciesla bf231a
+            // https://github.com/mapnik/mapnik/issues/761
Jon Ciesla bf231a
+            if (delta <= 0.0) return 0.0;
Jon Ciesla bf231a
+            return (x - m_start) / delta;
Jon Ciesla bf231a
         }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
-- 
Jon Ciesla bf231a
1.8.1.4
Jon Ciesla bf231a