mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
Receiving error in local variable err, and forgot to free it. This patch check the return value of 'gdk_window_create_gl_context' and 'gdk_gl_context_realize', then free err to fix it. Reported-by: Euler Robot <euler.robot@huawei.com> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com> Message-Id: <20200831134315.1221-6-pannengyuan@huawei.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
67a7bfe560
commit
2cd1e3f915
1 changed files with 11 additions and 0 deletions
|
@ -147,10 +147,21 @@ QEMUGLContext gd_gl_area_create_context(DisplayChangeListener *dcl,
|
|||
gtk_gl_area_make_current(GTK_GL_AREA(vc->gfx.drawing_area));
|
||||
window = gtk_widget_get_window(vc->gfx.drawing_area);
|
||||
ctx = gdk_window_create_gl_context(window, &err);
|
||||
if (err) {
|
||||
g_printerr("Create gdk gl context failed: %s\n", err->message);
|
||||
g_error_free(err);
|
||||
return NULL;
|
||||
}
|
||||
gdk_gl_context_set_required_version(ctx,
|
||||
params->major_ver,
|
||||
params->minor_ver);
|
||||
gdk_gl_context_realize(ctx, &err);
|
||||
if (err) {
|
||||
g_printerr("Realize gdk gl context failed: %s\n", err->message);
|
||||
g_error_free(err);
|
||||
g_clear_object(&ctx);
|
||||
return NULL;
|
||||
}
|
||||
return ctx;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue