X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FConverterCache.cpp;h=2373b84d2fb06f2fe1ea6ef781aac02fbdef97bc;hb=66c5d055e776e0cd08fb35c164b49d9ccc7812b7;hp=77ba7b32e64210ddbe80309976050255c0b89349;hpb=cb5dd33475e7cca472ead1fd3eac9f174b8b76ba;p=lyx.git diff --git a/src/ConverterCache.cpp b/src/ConverterCache.cpp index 77ba7b32e6..2373b84d2f 100644 --- a/src/ConverterCache.cpp +++ b/src/ConverterCache.cpp @@ -49,13 +49,14 @@ unsigned long do_crc(string const & s) } +// FIXME THREAD +// This should be OK because it is only assigned during init() static FileName cache_dir; class CacheItem { public: - CacheItem() - {} + CacheItem() : timestamp(0), checksum(0) {} CacheItem(FileName const & orig_from, string const & to_format, time_t t, unsigned long c) : timestamp(t), checksum(c) @@ -75,7 +76,7 @@ public: unsigned long checksum; }; -} +} // namespace /** The cache contains one item per orig file and target format, so use a @@ -158,7 +159,11 @@ void ConverterCache::Impl::readIndex() FormatCache & format_cache = cache[orig_from_name]; if (format_cache.from_format.empty()) format_cache.from_format = - formats.getFormatFromFile(orig_from_name); + // FIXME perf: This very expensive function is called on all + // cached files on opening. This slows LyX startup a lot. It + // would be better if this information was retrieved in a + // delayed fashion. + theFormats().getFormatFromFile(orig_from_name); format_cache.cache[to_format] = item; } is.close(); @@ -249,7 +254,7 @@ void ConverterCache::init() void ConverterCache::writeIndex() const { - if (!lyxrc.use_converter_cache + if (!lyxrc.use_converter_cache || cache_dir.empty()) return; pimpl_->writeIndex(); @@ -315,7 +320,7 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, FormatCache & format_cache = pimpl_->cache[orig_from]; if (format_cache.from_format.empty()) format_cache.from_format = - formats.getFormatFromFile(orig_from); + theFormats().getFormatFromFile(orig_from); format_cache.cache[to_format] = new_item; } else LYXERR(Debug::FILES, "ConverterCache::add(" << orig_from << "):\n" @@ -431,7 +436,7 @@ FileName const & ConverterCache::cacheName(FileName const & orig_from, LYXERR(Debug::FILES, orig_from << ' ' << to_format); CacheItem * const item = pimpl_->find(orig_from, to_format); - LASSERT(item, /**/); + LASSERT(item, { static const FileName fn; return fn; }); return item->cache_name; } @@ -455,7 +460,7 @@ bool ConverterCache::copy(FileName const & orig_from, string const & to_format, } CacheItem * const item = pimpl_->find(orig_from, to_format); - LASSERT(item, /**/); + LASSERT(item, return false); Mover const & mover = getMover(to_format); return mover.copy(item->cache_name, dest, onlyFileName(dest.absFileName()));