diff options
| author | Adrian Prantl <aprantl@apple.com> | 2019-12-10 10:58:06 -0800 |
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2019-12-10 15:57:53 -0800 |
| commit | 70e3d0ea55e8b9385168d389fcba16a283f20214 (patch) | |
| tree | 74fce680ebff340a4dc573acda73da034ca50a24 /lldb/source/DataFormatters | |
| parent | 62a6d9770450f93a2dcdf04710a73341af2f54fa (diff) | |
| download | bcm5719-llvm-70e3d0ea55e8b9385168d389fcba16a283f20214.tar.gz bcm5719-llvm-70e3d0ea55e8b9385168d389fcba16a283f20214.zip | |
[FormatManager] Move Language lookup into the obviously non-cached part (NFC)
This refactoring makes the lookup caching easier to reason about. This
has no observable effect although it does slightly change what is
being cached.
- Before this patch a negative lookup in the LanguageCategory would be
cached, but a positive wouldn't.
- After this patch LanguageCategory lookups aren't cached by
FormatManager, period. (LanguageCategory has its own FormatCache for this!)
Differential Revision: https://reviews.llvm.org/D71289
Diffstat (limited to 'lldb/source/DataFormatters')
| -rw-r--r-- | lldb/source/DataFormatters/FormatManager.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp index db15a7f7a4c..8c7967aaf1e 100644 --- a/lldb/source/DataFormatters/FormatManager.cpp +++ b/lldb/source/DataFormatters/FormatManager.cpp @@ -630,7 +630,22 @@ ImplSP FormatManager::Get(ValueObject &valobj, return retval_sp; Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_DATAFORMATTERS)); - LLDB_LOGF(log, "[%s] Search failed. Giving hardcoded a chance.", __FUNCTION__); + + LLDB_LOGF(log, "[%s] Search failed. Giving language a chance.", __FUNCTION__); + for (lldb::LanguageType lang_type : match_data.GetCandidateLanguages()) { + if (LanguageCategory *lang_category = GetCategoryForLanguage(lang_type)) { + ImplSP retval_sp; + if (lang_category->Get(match_data, retval_sp)) + if (retval_sp) { + LLDB_LOGF(log, "[%s] Language search success. Returning.", + __FUNCTION__); + return retval_sp; + } + } + } + + LLDB_LOGF(log, "[%s] Search failed. Giving hardcoded a chance.", + __FUNCTION__); return GetHardcoded<ImplSP>(match_data); } @@ -655,21 +670,6 @@ ImplSP FormatManager::GetCached(FormattersMatchData &match_data) { } m_categories_map.Get(match_data, retval_sp); - if (!retval_sp) { - LLDB_LOGF(log, "[%s] Search failed. Giving language a chance.", - __FUNCTION__); - for (lldb::LanguageType lang_type : match_data.GetCandidateLanguages()) { - if (LanguageCategory *lang_category = GetCategoryForLanguage(lang_type)) { - if (lang_category->Get(match_data, retval_sp)) - break; - } - } - if (retval_sp) { - LLDB_LOGF(log, "[%s] Language search success. Returning.", __FUNCTION__); - return retval_sp; - } - } - if (match_data.GetTypeForCache() && (!retval_sp || !retval_sp->NonCacheable())) { LLDB_LOGF(log, "[%s] Caching %p for type %s", __FUNCTION__, static_cast<void *>(retval_sp.get()), |

