[vlc-devel] [PATCH 07/11] vout/opengl: fix Pool error handling

Thomas Guillem thomas at gllm.fr
Wed Dec 14 17:16:12 CET 2016


---
 modules/video_output/opengl/vout_helper.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/modules/video_output/opengl/vout_helper.c b/modules/video_output/opengl/vout_helper.c
index fc2b4fc..362a234 100644
--- a/modules/video_output/opengl/vout_helper.c
+++ b/modules/video_output/opengl/vout_helper.c
@@ -942,7 +942,7 @@ picture_pool_t *vout_display_opengl_GetPool(vout_display_opengl_t *vgl, unsigned
 
     /* Allocates our textures */
     if (vlc_gl_Lock(vgl->gl))
-        return vgl->pool;
+        goto error;
 
     for (int i = 0; i < VLCGL_TEXTURE_COUNT; i++)
         GenTextures(vgl->tex_target, vgl->tex_internal, vgl->tex_format,
@@ -954,8 +954,16 @@ picture_pool_t *vout_display_opengl_GetPool(vout_display_opengl_t *vgl, unsigned
     return vgl->pool;
 
 error:
-    for (unsigned i = 0; i < count; i++)
-        picture_Release(picture[i]);
+    if (vgl->pool != NULL)
+    {
+        picture_pool_Release(vgl->pool);
+        vgl->pool = NULL;
+    }
+    else
+    {
+        for (unsigned i = 0; i < count; i++)
+            picture_Release(picture[i]);
+    }
     return NULL;
 }
 
-- 
2.10.2



More information about the vlc-devel mailing list