shape ops work in progress

git-svn-id: http://skia.googlecode.com/svn/trunk@6929 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/Intersection/ShapeOps.cpp b/experimental/Intersection/ShapeOps.cpp
index 281cf7f..0e0b1de 100644
--- a/experimental/Intersection/ShapeOps.cpp
+++ b/experimental/Intersection/ShapeOps.cpp
@@ -72,11 +72,11 @@
             if (nextIndex == angleCount) {
                 nextIndex = 0;
             }
-            int maxWinding, sumWinding, oppMaxWinding, oppSumWinding;
             angle = sorted[nextIndex];
             segment = angle->segment();
             int start = angle->start();
             int end = angle->end();
+            int maxWinding, sumWinding, oppMaxWinding, oppSumWinding;
             segment->setUpWindings(start, end, sumMiWinding, sumSuWinding,
                     maxWinding, sumWinding, oppMaxWinding, oppSumWinding);
             if (!segment->done(angle)) {
@@ -139,10 +139,11 @@
     SkPoint topLeft = {SK_ScalarMin, SK_ScalarMin};
     do {
         int index, endIndex;
+        bool done;
         Segment* current = findSortableTopNew(contourList, firstContour, index, endIndex, topLeft,
-                topUnsortable);
+                topUnsortable, done, true);
         if (!current) {
-            if (topUnsortable) {
+            if (topUnsortable || !done) {
                 topUnsortable = false;
                 SkASSERT(!firstRetry);
                 firstRetry = true;