[vlc-devel] commit: Do not increase refcount when the release callback is not present. (Laurent Aimar )

Laurent Aimar fenrir at via.ecp.fr
Thu Jul 17 23:34:13 CEST 2008


On Thu, Jul 17, 2008, Pierre d'Herbemont wrote:
> 
> On Jul 17, 2008, at 10:43 PM, git version control wrote:
> 
> > vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Thu Jul  
> > 17 22:45:03 2008 +0200| [76ab4696aa1dd14a349a7492faf4f93ddb13cbfc]
> >
> > Do not increase refcount when the release callback is not present.
> >
> >> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=76ab4696aa1dd14a349a7492faf4f93ddb13cbfc
> > ---
> >
> > src/misc/image.c |    9 ++++++---
> > 1 files changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/misc/image.c b/src/misc/image.c
> > index 4fc679a..3117ce4 100644
> > --- a/src/misc/image.c
> > +++ b/src/misc/image.c
> > @@ -316,7 +316,8 @@ static block_t *ImageWrite( image_handler_t  
> > *p_image, picture_t *p_pic,
> >             p_image->p_filter->fmt_out.video = p_image->p_enc- 
> > >fmt_in.video;
> >         }
> >
> > -        p_pic->i_refcount++; /* pf_video_filter() will call  
> > pf_release() */
> > +        if( p_pic->pf_release )
> > +            p_pic->i_refcount++;
> 
> Yet an other candid comment, why don't we use vlc_pic_incref() or even  
> vlc_gc_incref() and so on here?
Because vlc_pic_incref does not exit (and should probably be called vlc_picture_yield
to be consistant with vlc_object_t). 
And because vlc_gc_incref is not applicable here as pf_release is called every time
(it is not a destructor)...

 So unless I overlooked and missed the obvious, I will clean up by introducing a
few helpers for picture..

-- 
fenrir




More information about the vlc-devel mailing list