On Wed, May 16, 2018 at 01:09:43PM -0400, Richard Kimberly Heck wrote: > On 05/16/2018 01:06 PM, Enrico Forestieri wrote: > > On Wed, May 16, 2018 at 10:01:16AM +0200, Jean-Marc Lasgouttes wrote: > >> Le 15/05/2018 à 19:51, Enrico Forestieri a écrit : > >>>> The problem seems to be in the calling code. This seems to happen for > >>>> svgz > >>>> files (compressed svg files). > >>> Actually, it seems to happen when the same image is included multiple > >>> times, irrespective of the type. See attached example. > >>> > >>> Bisect leads to a31d3dc6 as the commit that introduced this issue. > >> I tried to figure out what happens, but this graphics preview code is a > >> nightmare to me. Is there someone who can tell me how it works? > > I don't know that code, so what follows is pure speculation. I think that > > the preview machinery is activated during the metrics calculation. When > > an image has to be loaded a second time, its preview is going to be > > regenerated again, if the cache is not used or if it is not in the cache. > > In order to do so, most variables are reset, among which also the target > > format. Now, when the same image appears more than one time on screen, > > while the first instance is being converted, a request for the second > > instance is issued, because the image is not in the cache still or the > > cache is not used. Hence, the same variables that are being used for the > > preview of the first instance are now cleared while the conversion is > > still not finished. Bummer. > > Is it possible for us to keep a list of graphics presently being > converted and refuse to convert the same one twice at the same time?
I really don't know that code, so I cannot answer. However, maybe the status_ member could be used for that purpose. I simply don't know where the decision of starting a conversion is taken in the code. -- Enrico