On 12/06/2010 04:34 AM, Jean-Marc Lasgouttes wrote:
Le 04/12/2010 23:55, Richard Heck a écrit :
How do we go back to the InsetCitation once we have already passed it? I
mean, on that trip through? How do we know when all the bibliography
information has been loaded? We can't until we are done. So the only
thing I can see would be to collect pointers to all the InsetCitations
and then do them all at the end. I don't see anything similar with
references and labels. Their screen labels do not depend upon anything
else.

I am not sure of the specifics of what has been discussed already, but what I would do is have a cache of style and file in buffer of somewhere that is filled by insetbibtex. This cache is used by the insetcitations and if insetbibtex notices that the cache was wrong (values changed), it updates the cache and triggers a second buffer update. We can afford the extra tenth of seconds when bibtex info changes, can't we?

So the existing situation is very close to this, except inverted: If we notice that the cache needs updating, then we run a special routine to update the cache (not a full buffer update), and then run the buffer update. So if we go this way, then we have no speed gain (which was the original hope). There's also no great simplification in the code, so far as I can see.

What would help, as things stand, is:
     class InsetTextIterator : public InsetIterator;
where this ignored math. But I do not understand very well how these iterators work.

Richard

Reply via email to