[Libreoffice-commits] core.git: vcl/source

Michael Meeks michael.meeks at collabora.com
Mon Aug 31 03:11:15 PDT 2015


 vcl/source/opengl/OpenGLHelper.cxx |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit 884bea629dc61d73ae1f0af6d55ee37df035c8de
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Mon Aug 31 11:18:19 2015 +0100

    tdf#93798 - avoid apitrace provoked infinite loop dumping errors.
    
    Change-Id: I6c42e6a9ead90ed6fad2f289cd686a72cffa0c2d

diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx
index 87fec55..68b8d50 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;
+        }
     }
 }
 


More information about the Libreoffice-commits mailing list