Subject: Re: bug#36403: 27.0.50; Trivial image.c bugs

From: Pip Cet <[email-masked]>
Date: Sun, 28 Jul 2019 14:50:47 +0000

On Fri, Jul 26, 2019 at 6:56 AM Eli Zaretskii <[email-masked]> wrote:
> > From: Pip Cet <[email-masked]>
> > Date: Mon, 22 Jul 2019 02:55:50 +0000
> > Cc: [email-masked]
> >
> > On Fri, Jun 28, 2019 at 7:53 PM Eli Zaretskii <[email-masked]> wrote:
> > > > Attached patch has tests and fixes.
> > >
> > > Thanks.  Let's wait for a few days to let others comment.
> >
> > Rebased patch attached.
>
> Thanks.
>
> Now that I applied this and looked into the results and the code, I
> have a few questions/comments.  Sorry I didn't see this earlier.

No problem at all, and thank you, as always, for your thoughtful comments!

> In your bug report, you say, among other things:
>
> > (insert-image `(image :dummy :type :type xbm :height 1 :width 1 :data
> > ,(bool-vector t)))
> >
> > produces an error. It should arguably behave the same as
> >
> > (insert-image `(image :dummy :dummy :type xbm :height 1 :width 1 :data
> > ,(bool-vector t)))
>
> Can you explain why these two are equivalent?

The ":dummy" property should be ignored, whether its value is ":dummy"
or ":type"; previously, we used the first occurence of :type even if
it was at an odd offset in the plist.

> > (equal_lists): Introduce.
> > (search_image_cache): Use `equal_lists'.
>
> I don't think I understand why we need this new function.  Can you explain?

IIRC, Fequal throwing a signal at this point caused a livelock, so we
needed a stricter check. I'll look into it again to see whether
there's a better alternative.

Thanks again!