X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FConverterCache.cpp;h=c601c3f708d8c997018121a5c05da77c2d881eb6;hb=84e91772eb255076384c96f662b56a0fbdf635a4;hp=29d07e4a04a5b7ce05aca502cc1c4d17b712d7f9;hpb=0fbc402141f5bf58a7e8696bfa11f3c67b80e637;p=lyx.git diff --git a/src/ConverterCache.cpp b/src/ConverterCache.cpp index 29d07e4a04..c601c3f708 100644 --- a/src/ConverterCache.cpp +++ b/src/ConverterCache.cpp @@ -76,7 +76,7 @@ public: unsigned long checksum; }; -} +} // namespace /** The cache contains one item per orig file and target format, so use a @@ -159,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(); @@ -194,14 +198,14 @@ CacheItem * ConverterCache::Impl::find(FileName const & from, string const & format) { if (!lyxrc.use_converter_cache) - return 0; + return nullptr; CacheType::iterator const it1 = cache.find(from); if (it1 == cache.end()) - return 0; + return nullptr; FormatCacheType & format_cache = it1->second.cache; FormatCacheType::iterator const it2 = format_cache.find(format); if (it2 == format_cache.end()) - return 0; + return nullptr; return &(it2->second); } @@ -223,7 +227,6 @@ ConverterCache::~ConverterCache() } -// FIXME THREAD ConverterCache & ConverterCache::get() { // Now return the cache @@ -251,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(); @@ -317,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"