diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-08-31 11:18:19 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-08-31 11:20:12 +0100 |
commit | 884bea629dc61d73ae1f0af6d55ee37df035c8de (patch) | |
tree | 1d6c762042ddaddf8e092cdb5bc8e602a4179107 | |
parent | 7221c817e0d6b520abeacf66050d1c6801a2add8 (diff) |
tdf#93798 - avoid apitrace provoked infinite loop dumping errors.
Change-Id: I6c42e6a9ead90ed6fad2f289cd686a72cffa0c2d
-rw-r--r-- | vcl/source/opengl/OpenGLHelper.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index 87fec55fb3e9..68b8d50ca70c 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -400,6 +400,7 @@ void OpenGLHelper::checkGLError(const char* pFile, size_t nLine) { OpenGLZone aZone; + int nErrors = 0; for (;;) { GLenum glErr = glGetError(); @@ -413,6 +414,13 @@ void OpenGLHelper::checkGLError(const char* pFile, size_t nLine) SAL_WARN("vcl.opengl", "GL Error #" << glErr << "(" << sError << ") in File " << pFile << " at line: " << nLine); else SAL_WARN("vcl.opengl", "GL Error #" << glErr << " (no message available) in File " << pFile << " at line: " << nLine); + + // tdf#93798 - apitrace appears to sometimes cause issues with an infinite loop here. + if (++nErrors >= 8) + { + SAL_WARN("vcl.opengl", "Breaking potentially recursive glGetError loop"); + break; + } } } |