commit 61b8afd893ecdbc15924aaf8f44014b41c5623ef
Author: Juergen Spitzmueller <[email protected]>
Date:   Sun Dec 19 15:39:49 2021 +0100

    Paragraph::needsCProtection(): use inset list
    
    rather than checking each pos whether it's an inset or not.
    
    This was a significant performance bottleneck (particularly getInset()
    itself seems slow).
---
 src/Paragraph.cpp |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 7fb46ae..2408261 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -4108,15 +4108,14 @@ bool Paragraph::needsCProtection(bool const fragile) 
const
        }
 
        // now check whether we have insets that need cprotection
-       pos_type size = pos_type(d->text_.size());
-       for (pos_type i = 0; i < size; ++i) {
-               if (!isInset(i))
+       for (auto const & icit : d->insetlist_) {
+               Inset const * ins = icit.inset;
+               if (!ins)
                        continue;
-               Inset const * ins = getInset(i);
                if (ins->needsCProtection(maintext, fragile))
                        return true;
                // Now check math environments
-               InsetMath const * im = getInset(i)->asInsetMath();
+               InsetMath const * im = ins->asInsetMath();
                if (!im || im->cell(0).empty())
                        continue;
                switch(im->cell(0)[0]->lyxCode()) {
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to