tdf#127652 sw_redlinehide: don't set invalid SwTextFrame offsets

The obvious problem here is that if a deletion spans multiple text
frames, the offset of the 2nd one must not be reduced lower than the
start position of the deletion; apparently this fixes the subsequent
crashes with stale text portions having now invalid indexes into the
string.

(regression from 0acde7514e666fc04805fd36503bd174162336ca)

Change-Id: Iaf9e2c5ca06ed36dc0e8611891d19c22f7661d34
Reviewed-on: https://gerrit.libreoffice.org/79421
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index a626453..b18d64c 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -1871,7 +1871,8 @@
    assert(nLen != TextFrameIndex(COMPLETE_STRING));
    if (rFrame.IsFollow() && nPos < rFrame.GetOfst())
    {
        rFrame.ManipOfst( std::max(TextFrameIndex(0), op(rFrame.GetOfst(), nLen)) );
        rFrame.ManipOfst( std::max(nPos, op(rFrame.GetOfst(), nLen)) );
        assert(sal_Int32(rFrame.GetOfst()) <= rFrame.GetText().getLength());
    }
}