mirror of https://github.com/xemu-project/xemu.git
ui/shader: fix potential leak of shader on error
Value of 0 for program and shaders are silently ignored and indicate error. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
4b7b661d8f
commit
8fe496adac
|
@ -130,15 +130,17 @@ static GLuint qemu_gl_create_link_program(GLuint vert, GLuint frag)
|
||||||
static GLuint qemu_gl_create_compile_link_program(const GLchar *vert_src,
|
static GLuint qemu_gl_create_compile_link_program(const GLchar *vert_src,
|
||||||
const GLchar *frag_src)
|
const GLchar *frag_src)
|
||||||
{
|
{
|
||||||
GLuint vert_shader, frag_shader, program;
|
GLuint vert_shader, frag_shader, program = 0;
|
||||||
|
|
||||||
vert_shader = qemu_gl_create_compile_shader(GL_VERTEX_SHADER, vert_src);
|
vert_shader = qemu_gl_create_compile_shader(GL_VERTEX_SHADER, vert_src);
|
||||||
frag_shader = qemu_gl_create_compile_shader(GL_FRAGMENT_SHADER, frag_src);
|
frag_shader = qemu_gl_create_compile_shader(GL_FRAGMENT_SHADER, frag_src);
|
||||||
if (!vert_shader || !frag_shader) {
|
if (!vert_shader || !frag_shader) {
|
||||||
return 0;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
program = qemu_gl_create_link_program(vert_shader, frag_shader);
|
program = qemu_gl_create_link_program(vert_shader, frag_shader);
|
||||||
|
|
||||||
|
end:
|
||||||
glDeleteShader(vert_shader);
|
glDeleteShader(vert_shader);
|
||||||
glDeleteShader(frag_shader);
|
glDeleteShader(frag_shader);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue