Fix use-after-free
Since putOrDelete may delete the layer, we shouldn't be accessing its
member after calling it.
Caught by the static analyzer:
frameworks/base/libs/hwui/renderstate/OffscreenBufferPool.cpp:183:44:
warning: Use of memory after it is freed
Bug: 27101951
Test: mma. Static analyzer warning is gone.
Change-Id: I25ee8b45ede608da52bf58d1d9f52ce3bb60d4cb
diff --git a/libs/hwui/renderstate/OffscreenBufferPool.cpp b/libs/hwui/renderstate/OffscreenBufferPool.cpp
index 90b27c8..2dfa6d4 100644
--- a/libs/hwui/renderstate/OffscreenBufferPool.cpp
+++ b/libs/hwui/renderstate/OffscreenBufferPool.cpp
@@ -179,8 +179,9 @@
layer->region.clear();
return layer;
}
+ bool wideColorGamut = layer->wideColorGamut;
putOrDelete(layer);
- return get(renderState, width, height, layer->wideColorGamut);
+ return get(renderState, width, height, wideColorGamut);
}
void OffscreenBufferPool::dump() {