Hi On Fri, Aug 8, 2025 at 12:08 PM Markus Armbruster <arm...@redhat.com> wrote:
> From GLib "Rules for use of GError": > > A GError* must be initialized to NULL before passing its address > to a function that can report errors. > > dbus_update_gl_cb() seemingly violates this rule: it passes &err to > qemu_dbus_display1_listener_call_update_dmabuf_finish() and to > qemu_dbus_display1_listener_win32_d3d11_call_update_texture2d_finish() > without clearing it in between. Harmless, because the first call is > guarded by #ifdef CONFIG_GBM, the second by #ifdef WIN32, and the two > are mutually exclusive. I think. > > Clean this up to be obviously correct. > > Cc: Marc-André Lureau <marcandre.lur...@redhat.com> > Signed-off-by: Markus Armbruster <arm...@redhat.com> > lgtm, thanks Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > ui/dbus-listener.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/ui/dbus-listener.c b/ui/dbus-listener.c > index 42875b8eed..09d7a319b1 100644 > --- a/ui/dbus-listener.c > +++ b/ui/dbus-listener.c > @@ -221,18 +221,21 @@ static void dbus_update_gl_cb(GObject *source_object, > #ifdef CONFIG_GBM > success = qemu_dbus_display1_listener_call_update_dmabuf_finish( > ddl->proxy, res, &err); > + if (!success) { > + error_report("Failed to call update: %s", err->message); > + } > #endif > > #ifdef WIN32 > success = > qemu_dbus_display1_listener_win32_d3d11_call_update_texture2d_finish( > ddl->d3d11_proxy, res, &err); > - d3d_texture2d_acquire0(ddl->d3d_texture, &error_warn); > -#endif > - > if (!success) { > error_report("Failed to call update: %s", err->message); > } > > + d3d_texture2d_acquire0(ddl->d3d_texture, &error_warn); > +#endif > + > graphic_hw_gl_block(ddl->dcl.con, false); > g_object_unref(ddl); > } > -- > 2.49.0 > >