Region now has its own implementation instead of relying on SkRegion, which allows us to break libui's dependency on libcorecg.
diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp
index 6437619..6db30c3 100644
--- a/libs/ui/Surface.cpp
+++ b/libs/ui/Surface.cpp
@@ -125,15 +125,17 @@
     uint8_t* dst_bits;
     dst->lock(GRALLOC_USAGE_SW_WRITE_OFTEN, reg.bounds(), (void**)&dst_bits);
     
-    Region::iterator iterator(reg);
-    if (iterator) {
+    size_t c;
+    Rect const* const rects = reg.getArray(&c);
+    
+    if (c) {
         // NOTE: dst and src must be the same format
-        Rect r;
         const size_t bpp = bytesPerPixel(src->format);
         const size_t dbpr = dst->stride * bpp;
         const size_t sbpr = src->stride * bpp;
 
-        while (iterator.iterate(&r)) {
+        for (size_t i=0 ; i<c ; i++) {
+            const Rect& r = rects[i];
             ssize_t h = r.height();
             if (h <= 0) continue;
             size_t size = r.width() * bpp;