Subject: Re: bug#12463: 24.2; pos-visible-in-window-p gets slower over time

From: Eli Zaretskii <[email-masked]>
Date: Fri, 21 Sep 2012 20:45:11 +0300

> From: Juanma Barranquero <[email-masked]>
> Date: Fri, 21 Sep 2012 19:07:28 +0200
> Cc: Chong Yidong <[email-masked]>, [email-masked], [email-masked]
> 
> On Fri, Sep 21, 2012 at 7:03 PM, Eli Zaretskii <[email-masked]> wrote:
> 
> > Am I missing something, or will this really call the initialization
> > function again and again and again?  AFAIU, if an image's library is
> > already in Vlibrary_cache, and the cdr of its association is non-nil,
> > that means the initialization function was already called for the
> > corresponding image type, and it returned non-zero.  So there's no
> > need to call it again.
> 
> In fact, if an image library is already in Vlibrary_cache, and the cdr
> is nil, that also means that the initialization function was called
> for that image type, if failed, and should never be called again.

That part is OK: if the cdr of the association is nil, the
initialization function is not called.

And I see now that image_types is searched before looking in
Vlibrary_cache, so the answer to my question is "yes, I did miss
something".

IOW, Vlibrary_cache is only searched to detect a previous unsuccessful
attempt to load the library, in which case we don't try again.
Otherwise, the image type will either be found in image_types, or
loaded by calling the initialization function.  So I guess this is
okay, sorry for the noise.