From 08c9b299b5912a53b6445cc276e6a20c21d3ab04 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Tue, 4 Mar 2014 11:02:43 -0800
Subject: [PATCH] Use splice rather than swaps to pop the undo stack

---
 aegisub/src/subs_controller.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/aegisub/src/subs_controller.cpp b/aegisub/src/subs_controller.cpp
index bd4ccd072..4720fd5d2 100644
--- a/aegisub/src/subs_controller.cpp
+++ b/aegisub/src/subs_controller.cpp
@@ -308,9 +308,7 @@ void SubsController::OnCommit(AssFileCommit c) {
 void SubsController::Undo() {
 	if (undo_stack.size() <= 1) return;
 
-	redo_stack.emplace_back(AssFile(), undo_stack.back().undo_description, commit_id);
-	context->ass->swap(redo_stack.back().file);
-	undo_stack.pop_back();
+	redo_stack.splice(redo_stack.end(), undo_stack, std::prev(undo_stack.end()));
 	*context->ass = undo_stack.back().file;
 	commit_id = undo_stack.back().commit_id;
 
-- 
GitLab