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
>
>

Reply via email to