[Mesa-dev] [PATCH] vl: Initialize pipe_vertex_buffer.user_buffer fields.

Jose Fonseca jfonseca at vmware.com
Mon May 14 05:03:56 PDT 2012


----- Original Message -----
> On 14.05.2012 09:25, Jose Fonseca wrote:
> > Looks good. Thanks Vinson.
> >
> > Joe
> 
> Actually, all the user_buffer pointers have a comment "/**< pointer
> to a
> user buffer if buffer == NULL */", so you wouldn't actually have to
> initialize them if buffer is guaranteed to be non-NULL, and checking
> for
> user_buffer before buffer anywhere would be a bug ... but then, we
> can't
> rely on people to recognize that, can we.

Yeah, that's too subtle thing to rely on.

And this fixes real bugs.  llvmpipe + vega state tracker was crashing until I did a similar change.

Jose

> 
> > ----- Original Message -----
> >> Fix uninitialized scalar variable defects reported by Coverity.
> >>
> >> Signed-off-by: Vinson Lee <vlee at freedesktop.org>
> >> ---
> >>  src/gallium/auxiliary/vl/vl_vertex_buffers.c |    4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/src/gallium/auxiliary/vl/vl_vertex_buffers.c
> >> b/src/gallium/auxiliary/vl/vl_vertex_buffers.c
> >> index 1e326a1..a6e7af3 100644
> >> --- a/src/gallium/auxiliary/vl/vl_vertex_buffers.c
> >> +++ b/src/gallium/auxiliary/vl/vl_vertex_buffers.c
> >> @@ -56,6 +56,7 @@ vl_vb_upload_quads(struct pipe_context *pipe)
> >>        PIPE_USAGE_STATIC,
> >>        sizeof(struct vertex2f) * 4
> >>     );
> >> +   quad.user_buffer = NULL;
> >>  
> >>     if(!quad.buffer)
> >>        return quad;
> >> @@ -100,6 +101,7 @@ vl_vb_upload_pos(struct pipe_context *pipe,
> >> unsigned width, unsigned height)
> >>        PIPE_USAGE_STATIC,
> >>        sizeof(struct vertex2s) * width * height
> >>     );
> >> +   pos.user_buffer = NULL;
> >>  
> >>     if(!pos.buffer)
> >>        return pos;
> >> @@ -268,6 +270,7 @@ vl_vb_get_ycbcr(struct vl_vertex_buffer
> >> *buffer,
> >> int component)
> >>     buf.stride = sizeof(struct vl_ycbcr_block);
> >>     buf.buffer_offset = 0;
> >>     buf.buffer = buffer->ycbcr[component].resource;
> >> +   buf.user_buffer = NULL;
> >>  
> >>     return buf;
> >>  }
> >> @@ -282,6 +285,7 @@ vl_vb_get_mv(struct vl_vertex_buffer *buffer,
> >> int
> >> motionvector)
> >>     buf.stride = sizeof(struct vl_motionvector);
> >>     buf.buffer_offset = 0;
> >>     buf.buffer = buffer->mv[motionvector].resource;
> >> +   buf.user_buffer = NULL;
> >>  
> >>     return buf;
> >>  }
> >> --
> >> 1.7.10.1
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >>
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> 


More information about the mesa-dev mailing list