[Spice-devel] [vdagent-win PATCH v8 4/5] Support encoding PNG images
Frediano Ziglio
fziglio at redhat.com
Fri Jul 21 13:13:26 UTC 2017
>
> On Wed, Jul 19, 2017 at 09:42:42AM +0100, Frediano Ziglio wrote:
> > -uint8_t *PngCoder::from_bitmap(const BITMAPINFO& info, const void *bits,
> > long &size)
> > +uint8_t *PngCoder::from_bitmap(const BITMAPINFO& bmp_info, const void
> > *bits, long &size)
> > {
> > - // TODO not implemented
> > - return NULL;
> > + // this vector is here to avoid problems as libpng use setjmp/longjmp
>
> Nit: I'd be more specific about the problems you are avoiding, as the
> goal of this comment is that someone changing this code is not going to
> be careful and not introduce the issues you had in mind.
>
Well, is tricky as the safe usage of setjmp/longjmp.
Something like
if (setjmp(jbuf)) {
}
...
char *buf = malloc(100);
...
longjmp(jbuf);
the jump will likely to cause a leak of buf.
In case of C++ to avoid not calling the destructor when longjmp is used
Could be
// this vector is here to avoid leaking resources if libpng use setjmp/longjmp
??
> Looks good otherwise,
>
> Acked-by: Christophe Fergeau <cfergeau at redhat.com>
>
> Christophe
>
Frediano
More information about the Spice-devel
mailing list