fdo#85215: Ensure that formula broadcasting works after sort.

When the reference update on sort is turned off.

Change-Id: I547dd1525a638dd447fe331e22583af4a7947308
(cherry picked from commit 1eb82c78a223d9a0b2bb5c3f5c129c1ee8bdf303)
Reviewed-on: https://gerrit.libreoffice.org/12113
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 589a9b1..c36b4cd 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -802,6 +802,15 @@ void ScTable::SortReorderByRow(
    ScSortInfoArray::RowsType* pRows = pArray->GetDataRows();
    assert(pRows); // In sort-by-row mode we must have data rows already populated.

    if (!pArray->IsUpdateRefs())
    {
        // When the update ref mode is disabled, we need to detach all formula
        // cells in the sorted range before reordering, and re-start them
        // afterward.
        sc::EndListeningContext aCxt(*pDocument);
        DetachFormulaCells(aCxt, nCol1, nRow1, nCol2, nRow2);
    }

    // Split formula groups at the sort range boundaries (if applicable).
    std::vector<SCROW> aRowBounds;
    aRowBounds.reserve(2);
@@ -1077,6 +1086,12 @@ void ScTable::SortReorderByRow(
    // Re-group columns in the sorted range too.
    for (SCCOL i = nCol1; i <= nCol2; ++i)
        aCol[i].RegroupFormulaCells();

    if (!pArray->IsUpdateRefs())
    {
        sc::StartListeningContext aCxt(*pDocument);
        AttachFormulaCells(aCxt, nCol1, nRow1, nCol2, nRow2);
    }
}

short ScTable::CompareCell(