From: Richard Kimberly Heck Date: Thu, 12 Nov 2020 23:29:52 +0000 (-0500) Subject: Use the new optional template to simplify. X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=7b7b759bcbb389a1d176e4ccaedfaa3b51173c39;p=features.git Use the new optional template to simplify. Thanks Yuriy! --- diff --git a/src/Buffer.cpp b/src/Buffer.cpp index c0a133fadd..b62228c415 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -97,6 +97,7 @@ #include "support/gzstream.h" #include "support/lstrings.h" #include "support/mutex.h" +#include "support/optional.h" #include "support/os.h" #include "support/Package.h" #include "support/PathChanger.h" @@ -215,14 +216,11 @@ public: typedef map MacroDefList; typedef map MacroMap; - bool haveMacro(docstring const & name) const - { return macro_map_.count(name) != 0; } - - // Will assert if there is no such macro, so call haveMacro first! - MacroDefList const & getMacroDefinitions(docstring const & name) const + optional getMacroDefinitions(docstring const & name) const { MacroMap::const_iterator it = macro_map_.find(name); - LBUFERR(it != macro_map_.end()); + if (it == macro_map_.end()) + return {}; return it->second; } @@ -3635,9 +3633,10 @@ MacroData const * Buffer::Impl::getBufferMacro(docstring const & name, MacroData const * bestData = nullptr; // find macro definitions for name - if (macro_table.haveMacro(name)) { - MacroTable::MacroDefList const & mdl = - macro_table.getMacroDefinitions(name); + if (optional m = + macro_table.getMacroDefinitions(name)) + { + MacroTable::MacroDefList const & mdl = m.value(); // find last definition in front of pos MacroTable::MacroDefList::const_iterator it = greatest_below(mdl, pos);