Issue 111727

Summary: [sw] SwDoc::DeleteRange does not adjust cursors
Product: Writer Reporter: mst.ooo
Component: codeAssignee: mst.ooo
Status: CLOSED FIXED QA Contact: issues@sw <issues>
Severity: Trivial    
Priority: P2 CC: andreas.martens, issues
Version: DEV300m77   
Target Milestone: ---   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---

Description mst.ooo 2010-05-20 15:48:23 UTC
the method SwDoc::DeleteRange does not adjust cursors so they may point at
deleted nodes.

this can be triggered by creating a delete redline whose first node is a section
node, positioning the view cursor in the delete redline, and then disabling
Edit->Changes->Show.

the text node where the cursor is registered is deleted, but the cursor still
points there.

there will be many assertions like this:

(dbx) where
  [1] AssertFail(pError = 0xf4f026d5 ""Attempt to compare indices into different
arrays."", pFileName = 0xf4f02709
"/export/home/ms216673/hg/swuno/sw/source/core/bastyp/index.cxx", nLine = 523U),
line 70 in "errhdl.cxx"
  [2] SwIndex::operator<=(this = 0xf12930e0, rIndex = CLASS), line 523 in
"index.cxx"
  [3] SwPosition::operator<=(this = 0xf12930d0, rPos = STRUCT), line 134 in
"pam.cxx"
  [4] SwPaM::Start(this = 0xf12930c4), line 220 in "pam.hxx"
  [5] SwRootFrm::CalcFrmRects(this = 0x88eb118, rCrsr = CLASS, bIsTblMode =
'\0'), line 2015 in "trvlfrm.cxx"
  [6] SwShellCrsr::FillRects(this = 0xf1293098), line 752 in "viscrs.cxx"
  [7] SwSelPaintRects::Show(this = 0xf129309c), line 564 in "viscrs.cxx"
  [8] SwShellCrsr::Show(this = 0xf1293000), line 760 in "viscrs.cxx"
  [9] SwCrsrShell::ShowCrsrs(this = 0x88ebed8, bCrsrVis = '\001'), line 2067 in
"crsrsh.cxx"
Comment 1 mst.ooo 2010-05-25 16:14:13 UTC
fixed in cws sw33bf04
http://hg.services.openoffice.org/hg/cws/sw33bf04/rev/0642325ae92f
Comment 2 mst.ooo 2010-05-27 15:08:57 UTC
verified by review with ama
Comment 3 mst.ooo 2010-06-14 16:45:21 UTC
.