]> git.lyx.org Git - lyx.git/commitdiff
Small optimization in Compare::Impl::equal().
authorVincent van Ravesteijn <vfr@lyx.org>
Sat, 9 Jan 2010 16:58:55 +0000 (16:58 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Sat, 9 Jan 2010 16:58:55 +0000 (16:58 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32916 a592a061-630c-0410-9148-cb99ea01b6c8

src/Compare.cpp

index afc28013f3a31ff379febc20bf1479ded6ba7801..64662ac9ce29cecce3d0337dfd1ef921efdc0738 100644 (file)
@@ -354,17 +354,22 @@ bool equal(DocIterator & o, DocIterator & n) {
        Paragraph const & old_par = o.text()->getPar(o.pit());
        Paragraph const & new_par = n.text()->getPar(n.pit());
 
-       Inset const * i_o = old_par.getInset(o.pos());
-       Inset const * i_n = new_par.getInset(n.pos());
+       char_type const c_o = old_par.getChar(o.pos());
+       char_type const c_n = new_par.getChar(n.pos());
+       if (c_o != c_n)
+               return false;
+
+       if (old_par.isInset(o.pos())) {
+               Inset const * i_o = old_par.getInset(o.pos());
+               Inset const * i_n = new_par.getInset(n.pos());
+
+               if (i_o && i_n)
+                       return equal(i_o, i_n);
+       }       
 
-       if (i_o && i_n)
-               return equal(i_o, i_n);
-       
-       char_type c_o = old_par.getChar(o.pos());
-       char_type c_n = new_par.getChar(n.pos());
        Font fo = old_par.getFontSettings(o.buffer()->params(), o.pos());
        Font fn = new_par.getFontSettings(n.buffer()->params(), n.pos());
-       return c_o == c_n && fo == fn;
+       return fo == fn;
 }