summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2012-09-09 16:13:26 -0700
committerChet Haase <chet@google.com>2012-09-10 08:56:55 -0700
commitbeb8bd0db28d8c5cad2a258f2ba2f3b8b76cf037 (patch)
tree84add68f98d2850a7f2ad468310a052822d5c1b4 /libs/hwui/OpenGLRenderer.cpp
parenta3909a93958676d341424d574752bc7b3280d421 (diff)
downloadframeworks_base-beb8bd0db28d8c5cad2a258f2ba2f3b8b76cf037.zip
frameworks_base-beb8bd0db28d8c5cad2a258f2ba2f3b8b76cf037.tar.gz
frameworks_base-beb8bd0db28d8c5cad2a258f2ba2f3b8b76cf037.tar.bz2
Reset GL buffer state after functor invocation
Functors in WebView were binding to different buffers than we assumed in the toolkit, eventually causing a crash due to improper dereferencing in the currently bound buffer. Fix is to reset state after invoking functors. Issue #6666279 Native crash in Currents, mostly on Nakasi Change-Id: I3697812d83613fffc9193daa99beea4dbf26474a
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 9f8b87c..f4c2675 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -299,10 +299,12 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) {
mFunctors.add(f);
}
}
+ // protect against functors binding to other buffers
+ mCaches.unbindMeshBuffer();
+ mCaches.unbindIndicesBuffer();
+ mCaches.activeTexture(0);
}
- mCaches.activeTexture(0);
-
return result;
}