From 4278172f35af11eaf6efd872645ad8015cc79839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Thu, 19 May 2016 16:40:20 +0100 Subject: [PATCH] Iterate over operation stack backwards. BUG: 363216 --- src/core/operationstack.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/core/operationstack.cpp b/src/core/operationstack.cpp index 32fc330..cbcfb8a 100644 --- a/src/core/operationstack.cpp +++ b/src/core/operationstack.cpp @@ -408,23 +408,26 @@ void OperationStack::push(Operation* o) { Q_ASSERT(o); - foreach(Operation * currentOp, operations()) { - if (mergeNewOperation(currentOp, o)) + auto currentOp = operations().end(); + while (currentOp != operations().begin()) + { + --currentOp; + if (mergeNewOperation(*currentOp, o)) break; - if (mergeCopyOperation(currentOp, o)) + if (mergeCopyOperation(*currentOp, o)) break; - if (mergeRestoreOperation(currentOp, o)) + if (mergeRestoreOperation(*currentOp, o)) break; - if (mergePartFlagsOperation(currentOp, o)) + if (mergePartFlagsOperation(*currentOp, o)) break; - if (mergePartLabelOperation(currentOp, o)) + if (mergePartLabelOperation(*currentOp, o)) break; - if (mergeCreatePartitionTableOperation(currentOp, o)) + if (mergeCreatePartitionTableOperation(*currentOp, o)) break; }