From b6403af3e697f90308fe8daf82f7b15252d198bc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 8 May 2008 03:23:46 +0000 Subject: [PATCH] Fix rdar://5919567: assertion failure: split didn't occur before erase! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50839 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Rewrite/RewriteRope.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Rewrite/RewriteRope.cpp b/lib/Rewrite/RewriteRope.cpp index 7ee9fcced2..9d5d7a7410 100644 --- a/lib/Rewrite/RewriteRope.cpp +++ b/lib/Rewrite/RewriteRope.cpp @@ -567,10 +567,12 @@ void RopePieceBTreeInterior::erase(unsigned Offset, unsigned NumBytes) { unsigned BytesFromChild = CurChild->size()-Offset; CurChild->erase(Offset, BytesFromChild); NumBytes -= BytesFromChild; + // Start at the beginning of the next child. + Offset = 0; ++i; continue; } - + // If the deletion request completely covers the child, delete it and move // the rest down. NumBytes -= CurChild->size(); -- 2.40.0