commit d8e509e5ebb7890f1f62bf8731cf445782cb6bc2
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Sat Jul 15 23:26:31 2023 +0200

    Cleanup and (maybe) speedup InsetMathChar::mathClass
    
    Profiling with hotspot show that it counts for more than it should and
    indeed using support::contains is a overkill here. I like the new code
    better anyway.
    
    I would be surprised to see that it makes a big difference, though.
---
 src/mathed/InsetMathChar.cpp |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/mathed/InsetMathChar.cpp b/src/mathed/InsetMathChar.cpp
index d923d04..71aba6f 100644
--- a/src/mathed/InsetMathChar.cpp
+++ b/src/mathed/InsetMathChar.cpp
@@ -26,7 +26,6 @@
 #include "frontends/FontMetrics.h"
 
 #include "support/debug.h"
-#include "support/lstrings.h"
 #include "support/textutils.h"
 
 #include <algorithm>
@@ -310,16 +309,27 @@ void InsetMathChar::htmlize(HtmlStream & ms) const
 MathClass InsetMathChar::mathClass() const
 {
        // this information comes from fontmath.ltx in LaTeX source.
-       char const ch = static_cast<char>(char_);
        if (subst_)
                return string_to_class(subst_->extra);
-       else if (support::contains(",;", ch))
+
+       if (!isASCII(char_))
+               return MC_ORD;
+
+       switch (static_cast<char>(char_)) {
+       case ',':
+       case ';':
                return MC_PUNCT;
-       else if (support::contains("([", ch))
+       case '(':
+       case '[':
                return MC_OPEN;
-       else if (support::contains(")]!?", ch))
+       case ')':
+       case ']':
+       case '!':
+       case '?':
                return MC_CLOSE;
-       else return MC_ORD;
+       default:
+               return MC_ORD;
+       }
 }
 
 
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to