Fix a couple crashes in the new reorderer

Also fixes the layer clear scissor logic in BakedOpRenderer, fixing a
flicker.

Change-Id: I61106a18938ea35e31f0a0b585b5743544245773
diff --git a/libs/hwui/FrameReorderer.h b/libs/hwui/FrameReorderer.h
index 562e6a1..3bb8626 100644
--- a/libs/hwui/FrameReorderer.h
+++ b/libs/hwui/FrameReorderer.h
@@ -99,7 +99,7 @@
         // Relay through layers in reverse order, since layers
         // later in the list will be drawn by earlier ones
         for (int i = mLayerReorderers.size() - 1; i >= 1; i--) {
-            LayerReorderer& layer = mLayerReorderers[i];
+            LayerReorderer& layer = *(mLayerReorderers[i]);
             if (layer.renderNode) {
                 // cached HW layer - can't skip layer if empty
                 renderer.startRepaintLayer(layer.offscreenBuffer, layer.repaintRect);
@@ -112,7 +112,7 @@
             }
         }
 
-        const LayerReorderer& fbo0 = mLayerReorderers[0];
+        const LayerReorderer& fbo0 = *(mLayerReorderers[0]);
         renderer.startFrame(fbo0.width, fbo0.height, fbo0.repaintRect);
         fbo0.replayBakedOpsImpl((void*)&renderer, unmergedReceivers, mergedReceivers);
         renderer.endFrame(fbo0.repaintRect);
@@ -120,7 +120,7 @@
 
     void dump() const {
         for (auto&& layer : mLayerReorderers) {
-            layer.dump();
+            layer->dump();
         }
     }
 
@@ -143,7 +143,7 @@
             const BeginLayerOp* beginLayerOp, RenderNode* renderNode);
     void restoreForLayer();
 
-    LayerReorderer& currentLayer() { return mLayerReorderers[mLayerStack.back()]; }
+    LayerReorderer& currentLayer() { return *(mLayerReorderers[mLayerStack.back()]); }
 
     BakedOpState* tryBakeOpState(const RecordedOp& recordedOp) {
         return BakedOpState::tryConstruct(mAllocator, *mCanvasState.writableSnapshot(), recordedOp);
@@ -183,7 +183,7 @@
 #undef X
 
     // List of every deferred layer's render state. Replayed in reverse order to render a frame.
-    std::vector<LayerReorderer> mLayerReorderers;
+    std::vector<LayerReorderer*> mLayerReorderers;
 
     /*
      * Stack of indices within mLayerReorderers representing currently active layers. If drawing