From 36bdf14a75a7c5e50f62d8f9e1c1be0c8e8a41be Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Wed, 16 Mar 2011 14:19:03 -0700 Subject: [PATCH] fix [4107131] nvidia driver call takes a very long time We were leaking all EGLSyncKHR objects, over time the list would grow and become very slow to operate on. Bug: 4107131 Change-Id: I6c82daf49fe3189d04550781d64d57c30c95f552 --- opengl/libs/EGL/egl.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp index f4a16509e..e13af1ca2 100644 --- a/opengl/libs/EGL/egl.cpp +++ b/opengl/libs/EGL/egl.cpp @@ -2077,14 +2077,15 @@ EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) if (!validate_display_context(dpy, ctx)) return EGL_FALSE; + EGLBoolean result = EGL_FALSE; egl_context_t * const c = get_context(ctx); - if (c->cnx->egl.eglDestroySyncKHR) { - return c->cnx->egl.eglDestroySyncKHR( + result = c->cnx->egl.eglDestroySyncKHR( dp->disp[c->impl].dpy, syncObject->sync); + if (result) + _s.terminate(); } - - return EGL_FALSE; + return result; } EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)