[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 06/12] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_cont
From: |
Pan Nengyuan |
Subject: |
Re: [PATCH 06/12] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context() |
Date: |
Thu, 27 Aug 2020 15:06:12 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 |
On 2020/8/26 20:20, Li Qiang wrote:
> Pan Nengyuan <pannengyuan@huawei.com> 于2020年8月14日周五 下午6:15写道:
>>
>> Receiving error in local variable err, and forgot to free it.
>> Considering that there is no place to deal with it. Clean up.
>>
>> Reported-by: Euler Robot <euler.robot@huawei.com>
>> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
>> ---
>> Cc: Gerd Hoffmann <kraxel@redhat.com>
>> ---
>> ui/gtk-gl-area.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c
>> index 85f9d14c51..c740a7eb14 100644
>> --- a/ui/gtk-gl-area.c
>> +++ b/ui/gtk-gl-area.c
>> @@ -142,15 +142,14 @@ QEMUGLContext
>> gd_gl_area_create_context(DisplayChangeListener *dcl,
>> VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
>> GdkWindow *window;
>> GdkGLContext *ctx;
>> - GError *err = NULL;
>>
>> 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);
>> + ctx = gdk_window_create_gl_context(window, NULL);
>> gdk_gl_context_set_required_version(ctx,
>> params->major_ver,
>> params->minor_ver);
>> - gdk_gl_context_realize(ctx, &err);
>> + gdk_gl_context_realize(ctx, NULL);
>> return ctx;
>> }
>
> Maybe we should check the return value of 'gdk_window_create_gl_context'
> and 'gdk_gl_context_realize' instead of omitting it?
OK, Agree with you.
How about check the value like the below?
(Return NULL when error happens in gdk_gl_context_realize. It's different from
the original.)
Thanks.
--------
diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c
index 85f9d14c51..98c22d23f5 100644
--- a/ui/gtk-gl-area.c
+++ b/ui/gtk-gl-area.c
@@ -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;
}
>
> Thanks,
> Li Qiang
>
>>
>
>> --
>> 2.18.2
>>
>>
> .
>
- [PATCH 00/12] fix some error memleaks, Pan Nengyuan, 2020/08/14
- [PATCH 08/12] migration/colo: Plug memleaks in colo_process_incoming_thread, Pan Nengyuan, 2020/08/14
- [PATCH 09/12] blockdev: Fix a memleak in drive_backup_prepare(), Pan Nengyuan, 2020/08/14
- [PATCH 07/12] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features, Pan Nengyuan, 2020/08/14
- [PATCH 04/12] elf2dmp/pdb: Plug memleak in pdb_init_from_file, Pan Nengyuan, 2020/08/14