From: Richard Heck Date: Fri, 16 Jan 2009 23:40:37 +0000 (+0000) Subject: Cache the getInfo() return value. This will matter shortly. X-Git-Tag: 2.0.0~7403 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=d8bf83a85a6fd75d9443ab57866c9680171177a6;p=features.git Cache the getInfo() return value. This will matter shortly. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28190 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/BiblioInfo.cpp b/src/BiblioInfo.cpp index 68d37e83e2..7251649f5a 100644 --- a/src/BiblioInfo.cpp +++ b/src/BiblioInfo.cpp @@ -175,9 +175,13 @@ docstring const BibTeXInfo::getYear() const docstring const BibTeXInfo::getInfo() const { + if (!info_.empty()) + return info_; + if (!is_bibtex_) { BibTeXInfo::const_iterator it = find(from_ascii("ref")); - return it->second; + info_ = it->second; + return info_; } // FIXME @@ -224,8 +228,10 @@ docstring const BibTeXInfo::getInfo() const result << ", " << docLoc; docstring const result_str = rtrim(result.str()); - if (!result_str.empty()) - return result_str; + if (!result_str.empty()) { + info_ = result_str; + return info_; + } // This should never happen (or at least be very unusual!) return docstring(); diff --git a/src/BiblioInfo.h b/src/BiblioInfo.h index 0baa06c5c2..f0a9b1180e 100644 --- a/src/BiblioInfo.h +++ b/src/BiblioInfo.h @@ -92,6 +92,8 @@ private: docstring all_data_; /// the BibTeX entry type (article, book, incollection, ...) docstring entry_type_; + /// a cache for getInfo() + mutable docstring info_; /// our map: std::map bimap_; };