glslstage: delete shader on finalize of stage
authorMichael Tretter <m.tretter@pengutronix.de>
Wed, 21 Oct 2020 09:42:54 +0000 (11:42 +0200)
committerMichael Tretter <m.tretter@pengutronix.de>
Wed, 21 Oct 2020 13:28:09 +0000 (15:28 +0200)
commitc9d15fec7e5bc6c0eb2d736f467318c4fcacb17e
treecabfde2db032979b84d47504a1b408002f61f0c8
parent6af87dee17fdb7db1510f46c86b5625c0ec1a341
glslstage: delete shader on finalize of stage

GLSLstage creates the glShader using glCreateShader, but never calls
glDeleteShader if the glShader is not used anymore. This forces the GL
library to keep the compiled shader around, because it might be used in
the future. Therefore, the glShader is leaked whenever a GLSLStage is
destroyed.

Fix the leak by deleting the glShader when finishing the GLSLStage.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/886>
gst-libs/gst/gl/gstglslstage.c