Commit cb804507 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

media: vicodec: make life easier for static analyzers



cppcheck incorrectly produces an error here:
	[drivers/media/platform/vicodec/vicodec-core.c:1677]: (error) Pointer addition with NULL pointer.

While this is actually a false positive, it doesn't hurt to
reorder the checks to make the code simpler, handling first
the error patch, where no color or alpha components are there.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 59364e97
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -1664,19 +1664,22 @@ static int vicodec_start_streaming(struct vb2_queue *q,
	kvfree(state->compressed_frame);
	state->compressed_frame = new_comp_frame;

	if (info->components_num >= 3) {
		state->ref_frame.cb = state->ref_frame.luma + size;
		state->ref_frame.cr = state->ref_frame.cb + size / chroma_div;
	} else {
	if (info->components_num < 3) {
		state->ref_frame.cb = NULL;
		state->ref_frame.cr = NULL;
		state->ref_frame.alpha = NULL;
		return 0;
	}

	state->ref_frame.cb = state->ref_frame.luma + size;
	state->ref_frame.cr = state->ref_frame.cb + size / chroma_div;

	if (info->components_num == 4)
		state->ref_frame.alpha =
			state->ref_frame.cr + size / chroma_div;
	else
		state->ref_frame.alpha = NULL;

	return 0;
}