summaryrefslogtreecommitdiffstats
path: root/WebCore/platform
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-03-02 02:18:03 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-02 02:18:03 -0800
commit85d9f11c821466dfaf7e0f4b3e755c9439027783 (patch)
treecd3277e70531074a463fb09f382b0f0eb7187a8a /WebCore/platform
parentdfa39cc056ab8a6178f50905c31b97e27dd5d032 (diff)
parentf530a67b51ee304e24ab3e1dabc6b67958c09c68 (diff)
downloadexternal_webkit-85d9f11c821466dfaf7e0f4b3e755c9439027783.zip
external_webkit-85d9f11c821466dfaf7e0f4b3e755c9439027783.tar.gz
external_webkit-85d9f11c821466dfaf7e0f4b3e755c9439027783.tar.bz2
Merge "Crash on GL OOM to stop fallback to SW rendering."
Diffstat (limited to 'WebCore/platform')
-rw-r--r--WebCore/platform/graphics/android/GLUtils.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/android/GLUtils.cpp b/WebCore/platform/graphics/android/GLUtils.cpp
index b62072b..de794cb 100644
--- a/WebCore/platform/graphics/android/GLUtils.cpp
+++ b/WebCore/platform/graphics/android/GLUtils.cpp
@@ -99,13 +99,23 @@ void GLUtils::setOrthographicMatrix(TransformationMatrix& ortho, float left, flo
// GL & EGL error checks
/////////////////////////////////////////////////////////////////////////////////////////
+static void crashIfOOM(GLint errorCode) {
+ const GLint OOM_ERROR_CODE = 0x505;
+ if (errorCode == OOM_ERROR_CODE) {
+ XLOG("Fatal OOM detected.");
+ CRASH();
+ }
+}
+
void GLUtils::checkEglError(const char* op, EGLBoolean returnVal)
{
if (returnVal != EGL_TRUE)
XLOG("EGL ERROR - %s() returned %d\n", op, returnVal);
- for (EGLint error = eglGetError(); error != EGL_SUCCESS; error = eglGetError())
+ for (EGLint error = eglGetError(); error != EGL_SUCCESS; error = eglGetError()) {
XLOG("after %s() eglError (0x%x)\n", op, error);
+ crashIfOOM(error);
+ }
}
bool GLUtils::checkGlError(const char* op)
@@ -113,6 +123,7 @@ bool GLUtils::checkGlError(const char* op)
bool ret = false;
for (GLint error = glGetError(); error; error = glGetError()) {
XLOG("GL ERROR - after %s() glError (0x%x)\n", op, error);
+ crashIfOOM(error);
ret = true;
}
return ret;
@@ -123,6 +134,7 @@ bool GLUtils::checkGlErrorOn(void* p, const char* op)
bool ret = false;
for (GLint error = glGetError(); error; error = glGetError()) {
XLOG("GL ERROR on %x - after %s() glError (0x%x)\n", p, op, error);
+ crashIfOOM(error);
ret = true;
}
return ret;