]> git.lyx.org Git - features.git/commitdiff
Bidi::computeTables(): avoid a Font instantiation for each char.
authorAbdelrazak Younes <younes@lyx.org>
Sun, 19 Oct 2008 07:31:10 +0000 (07:31 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Sun, 19 Oct 2008 07:31:10 +0000 (07:31 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26959 a592a061-630c-0410-9148-cb99ea01b6c8

src/Bidi.cpp

index d00b8eb72dada03a17df1f93f148deb2d4ba2bd6..4470e755f116c764cf8b1142deb053459b9bbc90 100644 (file)
@@ -109,17 +109,18 @@ void Bidi::computeTables(Paragraph const & par,
                         !par.isLineSeparator(lpos + 1) &&
                         !par.isNewline(lpos + 1))
                        ? lpos + 1 : lpos;
-               Font font = par.getFontSettings(bufparams, pos);
-               if (pos != lpos && 0 < lpos && rtl0 && font.isRightToLeft() &&
-                   font.fontInfo().number() == FONT_ON &&
+
+               Font const * font = &(par.getFontSettings(bufparams, pos));
+               if (pos != lpos && 0 < lpos && rtl0 && font->isRightToLeft() &&
+                   font->fontInfo().number() == FONT_ON &&
                    par.getFontSettings(bufparams, lpos - 1).fontInfo().number()
                    == FONT_ON) {
-                       font = par.getFontSettings(bufparams, lpos);
+                       font = &(par.getFontSettings(bufparams, lpos));
                        is_space = false;
                }
+               bool new_rtl = font->isVisibleRightToLeft();
+               bool new_rtl0 = font->isRightToLeft();
 
-               bool new_rtl = font.isVisibleRightToLeft();
-               bool new_rtl0 = font.isRightToLeft();
                int new_level;
 
                if (lpos == body_pos - 1