diff options
author | 2014-12-09 16:54:03 -0800 | |
---|---|---|
committer | 2014-12-10 12:27:08 -0800 | |
commit | 4ac36f80beb958c77a92a3e1a235f6ed9daaa510 (patch) | |
tree | b555302a34a4a81cb32699aa3b987536c6ab2982 /libs/hwui/OpenGLRenderer.cpp | |
parent | 596d4e7230ae1858aaafbae7987e46d65181f1bd (diff) |
Fix frame-allocated path lifecycles
bug:18667472
Previously, we were allocating per-frame temporary paths within the
PlaybackStateStruct, but these are not safe as layers allocate these
transiently. Instead, move these to the OpenGLRenderer, which has
better define lifecycle.
Additionally, don't store SkPath objects directly in vector, since
they are then subject to relocation.
Change-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rwxr-xr-x | libs/hwui/OpenGLRenderer.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 075f2c509b24..96257e4b474a 100755 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -311,6 +311,11 @@ void OpenGLRenderer::finish() { renderOverdraw(); endTiling(); + for (size_t i = 0; i < mTempPaths.size(); i++) { + delete mTempPaths[i]; + } + mTempPaths.clear(); + // When finish() is invoked on FBO 0 we've reached the end // of the current frame if (getTargetFbo() == 0) { |