From d8bf83a85a6fd75d9443ab57866c9680171177a6 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Fri, 16 Jan 2009 23:40:37 +0000 Subject: [PATCH] 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 --- src/BiblioInfo.cpp | 12 +++++++++--- src/BiblioInfo.h | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) 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_; };