Hi Emre,

On 20 March 2018 at 14:28, Emre Ucan <[email protected]> wrote:
> drm_output_get_disable_state function returns
> a duplicated output_state object.
>
> Here we are creating the object, but we are
> never using it. Therefore, it is safe to remove.
>
> (Found by clang source code analyzer)

It's subtle, but we do need this here.

> @@ -3860,7 +3860,6 @@ drm_set_dpms(struct weston_output *output_base, enum 
> dpms_enum level)

It's out of diff context, the if branch we're in guarantees that we
have pending_state, i.e. after repaint_begin() but before
repaint_flush().

>                 state = drm_pending_state_get_output(pending_state, output);
>                 if (state)
>                         drm_output_state_free(state);

Here we search pending_state for any existing output state for this
output. If there are any, we free them and remove them from the
pending state. So after this line, we are guaranteed not to be
touching the output in this pending state.

> -               state = drm_output_get_disable_state(pending_state, output);

This line adds a disable state to the pending_state. We do not do
anything with it: we just keep it there in the pending_state, to be
applied when repaint_flush() is called. If we remove this, then we
won't disable the output.

Replacing 'state = ' with '(void) ' as the prefix of this line might
make it clearer; does that also quiet Coverity?

Cheers,
Daniel
_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to