Clean up GrDrawOpAtlas (take 2)

Relanding all the things

TBR=jvanverth@google.com
Change-Id: Ie4ecdaee1c192c841817a54d64a9b3f70d28b28f
Reviewed-on: https://skia-review.googlesource.com/111360
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrDrawOpAtlas.cpp b/src/gpu/GrDrawOpAtlas.cpp
index 7539a7a..3fd3110 100644
--- a/src/gpu/GrDrawOpAtlas.cpp
+++ b/src/gpu/GrDrawOpAtlas.cpp
@@ -303,7 +303,7 @@
     // Try to find a plot that we can perform an inline upload to.
     // We prioritize this upload in reverse order of pages to counterbalance the order above.
     Plot* plot = nullptr;
-    for (int pageIdx = (int)(fNumActivePages-1); pageIdx >= 0; --pageIdx) {
+    for (int pageIdx = ((int)fNumActivePages)-1; pageIdx >= 0; --pageIdx) {
         Plot* currentPlot = fPages[pageIdx].fPlotList.tail();
         if (currentPlot->lastUseToken() != target->tokenTracker()->nextDrawToken()) {
             plot = currentPlot;
@@ -565,8 +565,8 @@
     int numPlotsY = fTextureHeight/fPlotHeight;
 
     fPages[lastPageIndex].fPlotList.reset();
-    for (int y = numPlotsY - 1, r = 0; y >= 0; --y, ++r) {
-        for (int x = numPlotsX - 1, c = 0; x >= 0; --x, ++c) {
+    for (int r = 0; r < numPlotsY; ++r) {
+        for (int c = 0; c < numPlotsX; ++c) {
             uint32_t plotIndex = r * numPlotsX + c;
 
             Plot* currPlot = fPages[lastPageIndex].fPlotArray[plotIndex].get();