]> git.lyx.org Git - features.git/commitdiff
Use std::move in InsetText::updateBuffer for notes and friends
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 18 Sep 2018 21:18:17 +0000 (23:18 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 18 Sep 2018 21:18:17 +0000 (23:18 +0200)
Avoid as much as possible to do full copies of all counters, since
that can be expensive. Unfortunately, it is only posible when we want
to restore the saved counters.

An earlier version (05d3a649) defined swap() for Counter, but caused
problems on windows.

Part of bug #5973.

src/insets/InsetText.cpp

index 74f60e422e704349db76eeb230fd76ef726df325..107753e8ab7aaa433ae82b3cf230155b2fd8a798 100644 (file)
@@ -814,13 +814,13 @@ void InsetText::updateBuffer(ParIterator const & it, UpdateType utype)
                // Note that we do not need to call:
                //      tclass.counters().clearLastLayout()
                // since we are saving and restoring the existing counters, etc.
-               Counters const savecnt = tclass.counters();
+               Counters savecnt = tclass.counters();
                tclass.counters().reset();
                // we need float information even in note insets (#9760)
                tclass.counters().current_float(savecnt.current_float());
                tclass.counters().isSubfloat(savecnt.isSubfloat());
                buffer().updateBuffer(it2, utype);
-               tclass.counters() = savecnt;
+               tclass.counters() = move(savecnt);
        }
 }