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