[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