[hb-cairo] Fixes for sweep gradients

Make reversed angles not infloop, and
cap the number of interval repetitions
at 1000.

Fixes: https://github.com/harfbuzz/harfbuzz/issues/4055
diff --git a/src/hb-cairo-utils.cc b/src/hb-cairo-utils.cc
index ad0627c..10a811b 100644
--- a/src/hb-cairo-utils.cc
+++ b/src/hb-cairo-utils.cc
@@ -723,8 +723,9 @@
         }
 
       //assert (angles[0] + k * span <= 0 && 0 < angles[n_stops - 1] + k * span);
+      span = fabs (span);
 
-     for (unsigned l = k; 1; l++)
+     for (unsigned l = k; l < 1000; l++)
         {
           for (unsigned i = 1; i < n_stops; i++)
             {