Blob Blame History Raw
From 1c59d78cde9fcb8a43d7ff75db5d6fcf5f3c1d53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 9 Aug 2012 10:34:50 +0100
Subject: [PATCH] valgrind: use after free

i.e. since b35980d9b

seems remove, remove, delete was old pattern, new patterns ended up
as remove+delete, remove. Reorder to remove, remove+delete

Change-Id: I54ec8d0296e751110c516516465be2ac0615f6a1
(cherry picked from commit 069caf79d716ba73d3281beb13fa2af67cac24f9)

Signed-off-by: David Tardon <dtardon@redhat.com>
---
 editeng/source/editeng/editdoc.cxx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index 110daf5..b062114 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -2693,8 +2693,8 @@ void CharAttribList::OptimizeRanges( SfxItemPool& rItemPool )
                 if (*rNext.GetItem() == *rAttr.GetItem())
                 {
                     rAttr.GetEnd() = rNext.GetEnd();
-                    aAttribs.erase(aAttribs.begin()+nNext);
                     rItemPool.Remove(*rNext.GetItem());
+                    aAttribs.erase(aAttribs.begin()+nNext);
                 }
                 break;  // only 1 attr with same which can start here.
             }
-- 
1.8.1