[Libreoffice-commits] core.git: compilerplugins/clang cui/source include/svtools sc/source sd/source svtools/source unotools/source vcl/inc vcl/source xmlsecurity/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Sep 18 13:19:29 UTC 2018


 compilerplugins/clang/test/unusedfields.cxx                   |   25 
 compilerplugins/clang/unusedfields.cxx                        |   97 ++-
 cui/source/inc/cuitabarea.hxx                                 |    4 
 cui/source/inc/numpages.hxx                                   |    1 
 cui/source/tabpages/numpages.cxx                              |  274 ++--------
 cui/source/tabpages/tparea.cxx                                |   16 
 include/svtools/ctrlbox.hxx                                   |    3 
 sc/source/filter/html/htmlpars.cxx                            |   24 
 sc/source/filter/inc/defnamesbuffer.hxx                       |    3 
 sc/source/filter/inc/workbooksettings.hxx                     |    1 
 sc/source/filter/oox/defnamesbuffer.cxx                       |   80 --
 sc/source/filter/oox/formulaparser.cxx                        |   18 
 sc/source/filter/oox/workbooksettings.cxx                     |    5 
 sd/source/ui/dlg/RemoteDialogClientBox.cxx                    |   26 
 sd/source/ui/dlg/RemoteDialogClientBox.hxx                    |    3 
 sd/source/ui/view/viewshel.cxx                                |   93 +--
 svtools/source/control/ctrlbox.cxx                            |    5 
 unotools/source/config/eventcfg.cxx                           |   15 
 vcl/inc/printdlg.hxx                                          |    1 
 vcl/source/window/printdlg.cxx                                |   17 
 xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx |   21 
 xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx |    2 
 22 files changed, 223 insertions(+), 511 deletions(-)

New commits:
commit 5d86154f49d713dada4aaa541755076cfeefa2c6
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Sep 18 09:57:26 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Sep 18 15:19:04 2018 +0200

    loplugin:unusedfields improve search for unused collection fields
    
    look for collection-like fields that are never added to, and are
    therefore effectively unused
    
    Change-Id: Id52c5500ea5e3d2436fb5915aebb86278bf2d925
    Reviewed-on: https://gerrit.libreoffice.org/60661
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/compilerplugins/clang/test/unusedfields.cxx b/compilerplugins/clang/test/unusedfields.cxx
index fe81c88ed205..a6b1ec625ec3 100644
--- a/compilerplugins/clang/test/unusedfields.cxx
+++ b/compilerplugins/clang/test/unusedfields.cxx
@@ -10,6 +10,7 @@
 #include <vector>
 #include <ostream>
 #include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
 
 struct Foo
 // expected-error at -1 {{read m_foo1 [loplugin:unusedfields]}}
@@ -172,4 +173,28 @@ struct ReadOnlyAnalysis3
     }
 };
 
+// Verify the special logic for container fields that only contains mutations that
+// add elements.
+struct ReadOnlyAnalysis4
+// expected-error at -1 {{read m_readonly [loplugin:unusedfields]}}
+// expected-error at -2 {{read m_readwrite [loplugin:unusedfields]}}
+// expected-error at -3 {{write m_readwrite [loplugin:unusedfields]}}
+// expected-error at -4 {{read m_readonlyCss [loplugin:unusedfields]}}
+{
+    std::vector<int> m_readonly;
+    std::vector<int> m_readwrite;
+    css::uno::Sequence<sal_Int32> m_readonlyCss;
+
+    void func1()
+    {
+        int x = m_readonly[0];
+        (void)x;
+        *m_readonly.begin() = 1;
+
+        m_readwrite.push_back(0);
+
+        x = m_readonlyCss.getArray()[0];
+    }
+};
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/compilerplugins/clang/unusedfields.cxx b/compilerplugins/clang/unusedfields.cxx
index 5ba6ac3c1cd6..bcb2db202cec 100644
--- a/compilerplugins/clang/unusedfields.cxx
+++ b/compilerplugins/clang/unusedfields.cxx
@@ -159,9 +159,10 @@ public:
 private:
     MyFieldInfo niceName(const FieldDecl*);
     void checkTouchedFromOutside(const FieldDecl* fieldDecl, const Expr* memberExpr);
-    void checkWriteOnly(const FieldDecl* fieldDecl, const Expr* memberExpr);
-    void checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberExpr);
+    void checkIfReadFrom(const FieldDecl* fieldDecl, const Expr* memberExpr);
+    void checkIfWrittenTo(const FieldDecl* fieldDecl, const Expr* memberExpr);
     bool isSomeKindOfZero(const Expr* arg);
+    bool checkForWriteWhenUsingCollectionType(const CXXMethodDecl * calleeMethodDecl);
     bool IsPassedByNonConst(const FieldDecl* fieldDecl, const Stmt * child, CallerWrapper callExpr,
                                         CalleeWrapper calleeFunctionDecl);
     llvm::Optional<CalleeWrapper> getCallee(CallExpr const *);
@@ -453,14 +454,14 @@ bool UnusedFields::VisitMemberExpr( const MemberExpr* memberExpr )
 
     checkTouchedFromOutside(fieldDecl, memberExpr);
 
-    checkWriteOnly(fieldDecl, memberExpr);
+    checkIfReadFrom(fieldDecl, memberExpr);
 
-    checkReadOnly(fieldDecl, memberExpr);
+    checkIfWrittenTo(fieldDecl, memberExpr);
 
     return true;
 }
 
-void UnusedFields::checkWriteOnly(const FieldDecl* fieldDecl, const Expr* memberExpr)
+void UnusedFields::checkIfReadFrom(const FieldDecl* fieldDecl, const Expr* memberExpr)
 {
     if (insideMoveOrCopyOrCloneDeclParent || insideStreamOutputOperator)
     {
@@ -656,15 +657,10 @@ void UnusedFields::checkWriteOnly(const FieldDecl* fieldDecl, const Expr* member
     if (bPotentiallyReadFrom)
     {
         readFromSet.insert(fieldInfo);
-        if (fieldInfo.fieldName == "nNextElementNumber")
-        {
-            parent->dump();
-            memberExpr->dump();
-        }
     }
 }
 
-void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberExpr)
+void UnusedFields::checkIfWrittenTo(const FieldDecl* fieldDecl, const Expr* memberExpr)
 {
     if (insideMoveOrCopyOrCloneDeclParent)
     {
@@ -749,10 +745,10 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
             {
                 // if calling a non-const operator on the field
                 auto calleeMethodDecl = callee->getAsCXXMethodDecl();
-                if (calleeMethodDecl
-                    && operatorCallExpr->getArg(0) == child && !calleeMethodDecl->isConst())
+                if (calleeMethodDecl && operatorCallExpr->getArg(0) == child)
                 {
-                    bPotentiallyWrittenTo = true;
+                    if (!calleeMethodDecl->isConst())
+                        bPotentiallyWrittenTo = checkForWriteWhenUsingCollectionType(calleeMethodDecl);
                 }
                 else if (IsPassedByNonConst(fieldDecl, child, operatorCallExpr, *callee))
                 {
@@ -773,13 +769,13 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
                 if (tmp->isBoundMemberFunction(compiler.getASTContext())) {
                     tmp = dyn_cast<MemberExpr>(tmp)->getBase();
                 }
-                if (cxxMemberCallExpr->getImplicitObjectArgument() == tmp
-                     && !calleeMethodDecl->isConst())
+                if (cxxMemberCallExpr->getImplicitObjectArgument() == tmp)
                 {
-                    bPotentiallyWrittenTo = true;
+                    if (!calleeMethodDecl->isConst())
+                        bPotentiallyWrittenTo = checkForWriteWhenUsingCollectionType(calleeMethodDecl);
                     break;
                 }
-                if (IsPassedByNonConst(fieldDecl, child, cxxMemberCallExpr, CalleeWrapper(calleeMethodDecl)))
+                else if (IsPassedByNonConst(fieldDecl, child, cxxMemberCallExpr, CalleeWrapper(calleeMethodDecl)))
                     bPotentiallyWrittenTo = true;
             }
             else
@@ -888,6 +884,71 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
     }
 }
 
+// return true if this not a collection type, or if it is a collection type, and we might be writing to it
+bool UnusedFields::checkForWriteWhenUsingCollectionType(const CXXMethodDecl * calleeMethodDecl)
+{
+    auto const tc = loplugin::TypeCheck(calleeMethodDecl->getParent());
+    bool listLike = false, setLike = false, mapLike = false, cssSequence = false;
+    if (tc.Class("deque").StdNamespace()
+        || tc.Class("list").StdNamespace()
+        || tc.Class("queue").StdNamespace()
+        || tc.Class("vector").StdNamespace())
+    {
+        listLike = true;
+    }
+    else if (tc.Class("set").StdNamespace()
+        || tc.Class("unordered_set").StdNamespace())
+    {
+        setLike = true;
+    }
+    else if (tc.Class("map").StdNamespace()
+        || tc.Class("unordered_map").StdNamespace())
+    {
+        mapLike = true;
+    }
+    else if (tc.Class("Sequence").Namespace("uno").Namespace("star").Namespace("sun").Namespace("com").GlobalNamespace())
+    {
+        cssSequence = true;
+    }
+    else
+        return true;
+
+    if (calleeMethodDecl->isOverloadedOperator())
+    {
+        auto oo = calleeMethodDecl->getOverloadedOperator();
+        if (oo == OO_Equal)
+            return true;
+        // This is operator[]. We only care about things that add elements to the collection.
+        // if nothing modifies the size of the collection, then nothing useful
+        // is stored in it.
+        if (listLike)
+            return false;
+        return true;
+    }
+
+    auto name = calleeMethodDecl->getName();
+    if (listLike || setLike || mapLike)
+    {
+        if (name == "reserve" || name == "shrink_to_fit" || name == "clear"
+            || name == "erase" || name == "pop_back" || name == "pop_front"
+            || name == "front" || name == "back" || name == "data"
+            || name == "remove" || name == "remove_if"
+            || name == "unique" || name == "sort"
+            || name == "begin" || name == "end"
+            || name == "rbegin" || name == "rend"
+            || name == "at" || name == "find" || name == "equal_range"
+            || name == "lower_bound" || name == "upper_bound")
+            return false;
+    }
+    if (cssSequence)
+    {
+        if (name == "getArray" || name == "begin" || name == "end")
+            return false;
+    }
+
+    return true;
+}
+
 bool UnusedFields::IsPassedByNonConst(const FieldDecl* fieldDecl, const Stmt * child, CallerWrapper callExpr,
                                          CalleeWrapper calleeFunctionDecl)
 {
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index 544e2e52c62c..c9d1a99bbc52 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -246,10 +246,6 @@ private:
 
 protected:
     Size m_aColorSize;
-    Size m_aGradientSize;
-    Size m_aBitmapSize;
-    Size m_aHatchSize;
-    Size m_aPatternSize;
 
     std::unique_ptr<weld::Container> m_xFillTab;
     std::unique_ptr<weld::ToggleButton> m_xBtnNone;
diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx
index 1e2dc214b44b..05cfb40a8e77 100644
--- a/cui/source/inc/numpages.hxx
+++ b/cui/source/inc/numpages.hxx
@@ -48,7 +48,6 @@ class SvxNumberingPreview : public vcl::Window
 {
     const SvxNumRule*   pActNum;
     vcl::Font           aStdFont;
-    bool                bPosition;
     sal_uInt16          nActLevel;
 
     protected:
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 8451dd787d63..b65e195f863d 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -2252,7 +2252,6 @@ static long lcl_DrawBullet(VirtualDevice* pVDev,
 SvxNumberingPreview::SvxNumberingPreview(vcl::Window* pParent, WinBits nWinBits)
     : Window(pParent, nWinBits)
     , pActNum(nullptr)
-    , bPosition(false)
     , nActLevel(SAL_MAX_UINT16)
 {
     SetBorderStyle(WindowBorderStyle::MONO);
@@ -2297,232 +2296,97 @@ void SvxNumberingPreview::Paint(vcl::RenderContext& rRenderContext, const ::tool
         aStdFont.SetFillColor(aBackColor);
 
         long nFontHeight = nYStep * 6 / 10;
-        if (bPosition)
-            nFontHeight = nYStep * 15 / 10;
         aStdFont.SetFontSize(Size( 0, nFontHeight ));
 
         SvxNodeNum aNum;
         sal_uInt16 nPreNum = pActNum->GetLevel(0).GetStart();
 
-        if (bPosition)
+        //#i5153# painting gray or black rectangles as 'normal' numbering text
+        long nWidth = pVDev->GetTextWidth("Preview");
+        long nTextHeight = pVDev->GetTextHeight();
+        long nRectHeight = nTextHeight * 2 / 3;
+        long nTopOffset = nTextHeight - nRectHeight;
+        Color aBlackColor(COL_BLACK);
+        if (aBlackColor == aBackColor)
+            aBlackColor.Invert();
+
+        for (sal_uInt16 nLevel = 0; nLevel < pActNum->GetLevelCount(); ++nLevel, nYStart = nYStart + nYStep)
         {
-            long nLineHeight = nFontHeight * 8 / 7;
-            sal_uInt8 nStart = 0;
-            while (!(nActLevel & (1<<nStart)))
+            const SvxNumberFormat &rFmt = pActNum->GetLevel(nLevel);
+            aNum.GetLevelVal()[ nLevel ] = rFmt.GetStart();
+            long nXStart( 0 );
+            pVDev->SetFillColor( aBackColor );
+
+            if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
             {
-                nStart++;
+                nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
             }
-            if (nStart)
-                nStart--;
-            sal_uInt8 nEnd = std::min(sal_uInt8(nStart + 3), sal_uInt8(pActNum->GetLevelCount()));
-            for (sal_uInt8 nLevel = nStart; nLevel < nEnd; ++nLevel)
+            else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
             {
-                const SvxNumberFormat &rFmt = pActNum->GetLevel(nLevel);
-                aNum.GetLevelVal()[nLevel] = rFmt.GetStart();
-
-                long nXStart( 0 );
-                short nTextOffset( 0 );
-                long nNumberXPos( 0 );
-                if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
-                {
-                    nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
-                    nTextOffset = rFmt.GetCharTextDistance() / nWidthRelation;
-                    nNumberXPos = nXStart;
-                    long nFirstLineOffset = (-rFmt.GetFirstLineOffset()) / nWidthRelation;
-
-                    if (nFirstLineOffset <= nNumberXPos)
-                        nNumberXPos = nNumberXPos - nFirstLineOffset;
-                    else
-                        nNumberXPos = 0;
-                    // in draw this is valid
-                    if (nTextOffset < 0)
-                        nNumberXPos = nNumberXPos + nTextOffset;
-                }
-                else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
-                {
-                    const long nTmpNumberXPos((rFmt.GetIndentAt() + rFmt.GetFirstLineIndent() ) / nWidthRelation);
-                    if (nTmpNumberXPos < 0)
-                    {
-                        nNumberXPos = 0;
-                    }
-                    else
-                    {
-                        nNumberXPos = nTmpNumberXPos;
-                    }
-                }
-
-                long nBulletWidth = 0;
-                if (SVX_NUM_BITMAP == (rFmt.GetNumberingType() &(~LINK_TOKEN)))
-                {
-                    long nYMiddle = nYStart + ( nFontHeight / 2 );
-                    nBulletWidth = rFmt.IsShowSymbol() ? lcl_DrawGraphic(pVDev.get(), rFmt, nNumberXPos, nYMiddle, nWidthRelation) : 0;
-                }
-                else if (SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType())
+                const long nTmpXStart((rFmt.GetIndentAt() + rFmt.GetFirstLineIndent() ) / nWidthRelation);
+                if (nTmpXStart < 0)
                 {
-                    nBulletWidth =  rFmt.IsShowSymbol() ? lcl_DrawBullet(pVDev.get(), rFmt, nNumberXPos, nYStart, aStdFont.GetFontSize()) : 0;
+                    nXStart = 0;
                 }
                 else
                 {
-                    pVDev->SetFont(aStdFont);
-                    aNum.SetLevel(nLevel);
-                    if (pActNum->IsContinuousNumbering())
-                        aNum.GetLevelVal()[nLevel] = nPreNum;
-                    OUString aText(pActNum->MakeNumString( aNum ));
-                    vcl::Font aSaveFont = pVDev->GetFont();
-                    vcl::Font aColorFont(aSaveFont);
-                    Color aTmpBulletColor = rFmt.GetBulletColor();
-                    if (aTmpBulletColor == COL_AUTO)
-                        aTmpBulletColor = aBackColor.IsDark() ? COL_WHITE : COL_BLACK;
-                    else if (aTmpBulletColor == aBackColor)
-                        aTmpBulletColor.Invert();
-                    aColorFont.SetColor(aTmpBulletColor);
-                    pVDev->SetFont(aColorFont);
-                    pVDev->DrawText(Point(nNumberXPos, nYStart), aText);
-                    pVDev->SetFont(aSaveFont);
-                    nBulletWidth = pVDev->GetTextWidth(aText);
-                    nPreNum++;
-                }
-                if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT &&
-                    rFmt.GetLabelFollowedBy() == SvxNumberFormat::SPACE )
-                {
-                    pVDev->SetFont(aStdFont);
-                    OUString aText(' ');
-                    pVDev->DrawText( Point(nNumberXPos, nYStart), aText );
-                    nBulletWidth = nBulletWidth + pVDev->GetTextWidth(aText);
+                    nXStart = nTmpXStart;
                 }
-
-                long nTextXPos( 0 );
-                if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
-                {
-                    nTextXPos = nXStart;
-                    if (nTextOffset < 0)
-                         nTextXPos = nTextXPos + nTextOffset;
-                    if (nNumberXPos + nBulletWidth + nTextOffset > nTextXPos)
-                        nTextXPos = nNumberXPos + nBulletWidth + nTextOffset;
-                }
-                else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
-                {
-                    switch (rFmt.GetLabelFollowedBy())
-                    {
-                        case SvxNumberFormat::LISTTAB:
-                        {
-                            nTextXPos = rFmt.GetListtabPos() / nWidthRelation;
-                            if (nTextXPos < nNumberXPos + nBulletWidth)
-                            {
-                                nTextXPos = nNumberXPos + nBulletWidth;
-                            }
-                        }
-                        break;
-                        case SvxNumberFormat::SPACE:
-                        case SvxNumberFormat::NOTHING:
-                        case SvxNumberFormat::NEWLINE:
-                        {
-                            nTextXPos = nNumberXPos + nBulletWidth;
-                        }
-                        break;
-                    }
-
-                    nXStart = rFmt.GetIndentAt() / nWidthRelation;
-                }
-
-                ::tools::Rectangle aRect1(Point(nTextXPos, nYStart + nFontHeight / 2), Size(aSize.Width() / 2, 2));
-                pVDev->SetFillColor(aBackColor);
-                pVDev->DrawRect(aRect1);
-
-                ::tools::Rectangle aRect2(Point(nXStart, nYStart + nLineHeight + nFontHeight / 2 ), Size(aSize.Width() / 2, 2));
-                pVDev->DrawRect(aRect2);
-                nYStart += 2 * nLineHeight;
             }
-        }
-        else
-        {
-            //#i5153# painting gray or black rectangles as 'normal' numbering text
-            long nWidth = pVDev->GetTextWidth("Preview");
-            long nTextHeight = pVDev->GetTextHeight();
-            long nRectHeight = nTextHeight * 2 / 3;
-            long nTopOffset = nTextHeight - nRectHeight;
-            Color aBlackColor(COL_BLACK);
-            if (aBlackColor == aBackColor)
-                aBlackColor.Invert();
-
-            for (sal_uInt16 nLevel = 0; nLevel < pActNum->GetLevelCount(); ++nLevel, nYStart = nYStart + nYStep)
+            nXStart /= 2;
+            nXStart += 2;
+            long nTextOffset = 2 * nXStep;
+            if (SVX_NUM_BITMAP == (rFmt.GetNumberingType()&(~LINK_TOKEN)))
             {
-                const SvxNumberFormat &rFmt = pActNum->GetLevel(nLevel);
-                aNum.GetLevelVal()[ nLevel ] = rFmt.GetStart();
-                long nXStart( 0 );
-                pVDev->SetFillColor( aBackColor );
-
-                if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
-                {
-                    nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
-                }
-                else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
+                if (rFmt.IsShowSymbol())
                 {
-                    const long nTmpXStart((rFmt.GetIndentAt() + rFmt.GetFirstLineIndent() ) / nWidthRelation);
-                    if (nTmpXStart < 0)
-                    {
-                        nXStart = 0;
-                    }
-                    else
-                    {
-                        nXStart = nTmpXStart;
-                    }
-                }
-                nXStart /= 2;
-                nXStart += 2;
-                long nTextOffset = 2 * nXStep;
-                if (SVX_NUM_BITMAP == (rFmt.GetNumberingType()&(~LINK_TOKEN)))
-                {
-                    if (rFmt.IsShowSymbol())
-                    {
-                        long nYMiddle = nYStart + ( nFontHeight / 2 );
-                        nTextOffset = lcl_DrawGraphic(pVDev.get(), rFmt, nXStart, nYMiddle, nWidthRelation);
-                        nTextOffset = nTextOffset + nXStep;
-                    }
-                }
-                else if (SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType())
-                {
-                    if (rFmt.IsShowSymbol())
-                    {
-                        nTextOffset =  lcl_DrawBullet(pVDev.get(), rFmt, nXStart, nYStart, aStdFont.GetFontSize());
-                        nTextOffset = nTextOffset + nXStep;
-                    }
-                }
-                else
-                {
-                    vcl::Font aColorFont(aStdFont);
-                    Color aTmpBulletColor = rFmt.GetBulletColor();
-                    if (aTmpBulletColor == COL_AUTO)
-                        aTmpBulletColor = aBackColor.IsDark() ? COL_WHITE : COL_BLACK;
-                    else if (aTmpBulletColor == aBackColor)
-                        aTmpBulletColor.Invert();
-                    aColorFont.SetColor(aTmpBulletColor);
-                    pVDev->SetFont(aColorFont);
-                    aNum.SetLevel( nLevel );
-                    if (pActNum->IsContinuousNumbering())
-                        aNum.GetLevelVal()[nLevel] = nPreNum;
-                    OUString aText(pActNum->MakeNumString(aNum));
-                    pVDev->DrawText(Point(nXStart, nYStart), aText);
-                    pVDev->SetFont(aStdFont);
-                    nTextOffset = pVDev->GetTextWidth(aText);
+                    long nYMiddle = nYStart + ( nFontHeight / 2 );
+                    nTextOffset = lcl_DrawGraphic(pVDev.get(), rFmt, nXStart, nYMiddle, nWidthRelation);
                     nTextOffset = nTextOffset + nXStep;
-                    nPreNum++;
-                }
-                //#i5153# the selected rectangle(s) should be black
-                if (0 != (nActLevel & (1<<nLevel)))
-                {
-                    pVDev->SetFillColor( aBlackColor );
-                    pVDev->SetLineColor( aBlackColor );
                 }
-                else
+            }
+            else if (SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType())
+            {
+                if (rFmt.IsShowSymbol())
                 {
-                    //#i5153# unselected levels are gray
-                    pVDev->SetFillColor( aLineColor );
-                    pVDev->SetLineColor( aLineColor );
+                    nTextOffset =  lcl_DrawBullet(pVDev.get(), rFmt, nXStart, nYStart, aStdFont.GetFontSize());
+                    nTextOffset = nTextOffset + nXStep;
                 }
-                ::tools::Rectangle aRect1(Point(nXStart + nTextOffset, nYStart + nTopOffset), Size(nWidth, nRectHeight));
-                pVDev->DrawRect(aRect1);
             }
+            else
+            {
+                vcl::Font aColorFont(aStdFont);
+                Color aTmpBulletColor = rFmt.GetBulletColor();
+                if (aTmpBulletColor == COL_AUTO)
+                    aTmpBulletColor = aBackColor.IsDark() ? COL_WHITE : COL_BLACK;
+                else if (aTmpBulletColor == aBackColor)
+                    aTmpBulletColor.Invert();
+                aColorFont.SetColor(aTmpBulletColor);
+                pVDev->SetFont(aColorFont);
+                aNum.SetLevel( nLevel );
+                if (pActNum->IsContinuousNumbering())
+                    aNum.GetLevelVal()[nLevel] = nPreNum;
+                OUString aText(pActNum->MakeNumString(aNum));
+                pVDev->DrawText(Point(nXStart, nYStart), aText);
+                pVDev->SetFont(aStdFont);
+                nTextOffset = pVDev->GetTextWidth(aText);
+                nTextOffset = nTextOffset + nXStep;
+                nPreNum++;
+            }
+            //#i5153# the selected rectangle(s) should be black
+            if (0 != (nActLevel & (1<<nLevel)))
+            {
+                pVDev->SetFillColor( aBlackColor );
+                pVDev->SetLineColor( aBlackColor );
+            }
+            else
+            {
+                //#i5153# unselected levels are gray
+                pVDev->SetFillColor( aLineColor );
+                pVDev->SetLineColor( aLineColor );
+            }
+            ::tools::Rectangle aRect1(Point(nXStart + nTextOffset, nYStart + nTopOffset), Size(nWidth, nRectHeight));
+            pVDev->DrawRect(aRect1);
         }
     }
     rRenderContext.DrawOutDev(Point(), aSize, Point(), aSize, *pVDev);
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 68d85d7f0ae1..0daa38f3b1b9 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -127,20 +127,20 @@ SvxAreaTabPage::SvxAreaTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs
     m_pFillTabPage.disposeAndReset(SvxColorTabPage::Create(aFillTab, &m_rXFSet));
     m_aColorSize = m_pFillTabPage->get_container_size();
     m_pFillTabPage.disposeAndReset(SvxGradientTabPage::Create(aFillTab, &m_rXFSet));
-    m_aGradientSize = m_pFillTabPage->get_container_size();
+    Size aGradientSize = m_pFillTabPage->get_container_size();
     m_pFillTabPage.disposeAndReset(SvxBitmapTabPage::Create(aFillTab, &m_rXFSet));
-    m_aBitmapSize = m_pFillTabPage->get_container_size();
+    Size aBitmapSize = m_pFillTabPage->get_container_size();
     m_pFillTabPage.disposeAndReset(SvxHatchTabPage::Create(aFillTab, &m_rXFSet));
-    m_aHatchSize = m_pFillTabPage->get_container_size();
+    Size aHatchSize = m_pFillTabPage->get_container_size();
     m_pFillTabPage.disposeAndReset(SvxPatternTabPage::Create(aFillTab, &m_rXFSet));
-    m_aPatternSize = m_pFillTabPage->get_container_size();
+    Size aPatternSize = m_pFillTabPage->get_container_size();
     m_pFillTabPage.disposeAndClear();
 
     Size aSize(m_aColorSize);
-    lclExtendSize(aSize, m_aGradientSize);
-    lclExtendSize(aSize, m_aBitmapSize);
-    lclExtendSize(aSize, m_aHatchSize);
-    lclExtendSize(aSize, m_aPatternSize);
+    lclExtendSize(aSize, aGradientSize);
+    lclExtendSize(aSize, aBitmapSize);
+    lclExtendSize(aSize, aHatchSize);
+    lclExtendSize(aSize, aPatternSize);
     m_xFillTab->set_size_request(aSize.Width(), aSize.Height());
 }
 
diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx
index 87822fc0a1fc..535fa0859ccc 100644
--- a/include/svtools/ctrlbox.hxx
+++ b/include/svtools/ctrlbox.hxx
@@ -498,8 +498,6 @@ class SVT_DLLPUBLIC SvtFontSizeBox
     FontMetric      aFontMetric;
     const FontList* pFontList;
     int             nSavedValue;
-    int             nMin;
-    int             nMax;
     FieldUnit       eUnit;
     sal_uInt16      nDecimalDigits;
     sal_uInt16      nRelMin;
@@ -519,7 +517,6 @@ class SVT_DLLPUBLIC SvtFontSizeBox
     void SetDecimalDigits(sal_uInt16 nDigits) { nDecimalDigits = nDigits; }
     FieldUnit GetUnit() const { return eUnit; }
     void SetUnit(FieldUnit _eUnit) { eUnit = _eUnit; }
-    void SetRange(int nNewMin, int nNewMax) { nMin = nNewMin; nMax = nNewMax; }
     void SetValue(int nNewValue, FieldUnit eInUnit);
 
     void InsertValue(int i);
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index ec86f6ec778e..b0613e294c9f 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -3039,15 +3039,11 @@ class CSSHandler
         }
     };
 
-    typedef std::pair<MemStr, MemStr> SelectorName; // element : class
-    typedef std::vector<SelectorName> SelectorNames;
-    SelectorNames maSelectorNames; /// current selector names.
     MemStr maPropName;  /// current property name.
     MemStr maPropValue; /// current property value.
 
-    ScHTMLStyles& mrStyles;
 public:
-    explicit CSSHandler(ScHTMLStyles& rStyles) : mrStyles(rStyles) {}
+    explicit CSSHandler() {}
 
     static void at_rule_name(const char* /*p*/, size_t /*n*/)
     {
@@ -3070,26 +3066,12 @@ public:
 
     static void begin_block() {}
 
-    void end_block()
-    {
-        maSelectorNames.clear();
-    }
+    static void end_block() {}
 
     static void begin_property() {}
 
     void end_property()
     {
-        SelectorNames::const_iterator itr = maSelectorNames.begin(), itrEnd = maSelectorNames.end();
-        for (; itr != itrEnd; ++itr)
-        {
-            // Add this property to the collection for each selector.
-            const SelectorName& rSelName = *itr;
-            const MemStr& rElem = rSelName.first;
-            const MemStr& rClass = rSelName.second;
-            OUString aName(maPropName.mp, maPropName.mn, RTL_TEXTENCODING_UTF8);
-            OUString aValue(maPropValue.mp, maPropValue.mn, RTL_TEXTENCODING_UTF8);
-            mrStyles.add(rElem.mp, rElem.mn, rClass.mp, rClass.mn, aName, aValue);
-        }
         maPropName = MemStr();
         maPropValue = MemStr();
     }
@@ -3128,7 +3110,7 @@ public:
 void ScHTMLQueryParser::ParseStyle(const OUString& rStrm)
 {
     OString aStr = OUStringToOString(rStrm, RTL_TEXTENCODING_UTF8);
-    CSSHandler aHdl(GetStyles());
+    CSSHandler aHdl;
     orcus::css_parser<CSSHandler> aParser(aStr.getStr(), aStr.getLength(), aHdl);
     try
     {
diff --git a/sc/source/filter/inc/defnamesbuffer.hxx b/sc/source/filter/inc/defnamesbuffer.hxx
index d4ff3b4a3e7c..45078929e7c8 100644
--- a/sc/source/filter/inc/defnamesbuffer.hxx
+++ b/sc/source/filter/inc/defnamesbuffer.hxx
@@ -78,14 +78,11 @@ public:
 
     /** Returns the original name as imported from or exported to the file. */
     const OUString& getUpcaseModelName() const;
-    /** Returns an Any with a SingleReference or ComplexReference, or an empty Any. */
-    css::uno::Any getReference( const ScAddress& rBaseAddr ) const;
 
 protected:
     DefinedNameModel    maModel;        /// Model data for this defined name.
     mutable OUString    maUpModelName;  /// Model name converted to uppercase ASCII.
     OUString            maCalcName;     /// Final name used in the Calc document.
-    css::uno::Any       maRefAny;       /// Single cell/range reference.
 };
 
 class DefinedName : public DefinedNameBase
diff --git a/sc/source/filter/inc/workbooksettings.hxx b/sc/source/filter/inc/workbooksettings.hxx
index 2477ab8d6c8d..5a02c02c228d 100644
--- a/sc/source/filter/inc/workbooksettings.hxx
+++ b/sc/source/filter/inc/workbooksettings.hxx
@@ -75,7 +75,6 @@ struct CalcSettingsModel
     bool                mbFullPrecision;        /// True = use full precision on calculation.
     bool                mbIterate;              /// True = allow circular references.
     bool                mbConcurrent;           /// True = concurrent calculation enabled.
-    bool                mbUseNlr;               /// True = use natural language references in formulas.
 
     explicit            CalcSettingsModel();
 };
diff --git a/sc/source/filter/oox/defnamesbuffer.cxx b/sc/source/filter/oox/defnamesbuffer.cxx
index 5bd2e56759b3..82cb436dd075 100644
--- a/sc/source/filter/oox/defnamesbuffer.cxx
+++ b/sc/source/filter/oox/defnamesbuffer.cxx
@@ -58,11 +58,6 @@ const sal_uInt32 BIFF12_DEFNAME_VBNAME      = 0x00000004;
 const sal_uInt32 BIFF12_DEFNAME_MACRO       = 0x00000008;
 const sal_uInt32 BIFF12_DEFNAME_BUILTIN     = 0x00000020;
 
-const sal_uInt16 BIFF_REFFLAG_COL1REL       = 0x0001;
-const sal_uInt16 BIFF_REFFLAG_ROW1REL       = 0x0002;
-const sal_uInt16 BIFF_REFFLAG_COL2REL       = 0x0004;
-const sal_uInt16 BIFF_REFFLAG_ROW2REL       = 0x0008;
-
 const OUStringLiteral spcOoxPrefix("_xlnm.");
 
 const sal_Char* const sppcBaseNames[] =
@@ -130,53 +125,6 @@ OUString lclGetUpcaseModelName( const OUString& rModelName )
     return rModelName.toAsciiUpperCase();
 }
 
-void lclConvertRefFlags( sal_Int32& ornFlags, sal_Int32& ornAbsPos, sal_Int32& ornRelPos, sal_Int32 nBasePos, sal_Int32 nApiRelFlag, bool bRel )
-{
-    if( getFlag( ornFlags, nApiRelFlag ) && !bRel )
-    {
-        // convert relative to absolute
-        setFlag( ornFlags, nApiRelFlag, false );
-        ornAbsPos = nBasePos + ornRelPos;
-    }
-    else if( !getFlag( ornFlags, nApiRelFlag ) && bRel )
-    {
-        // convert absolute to relative
-        setFlag( ornFlags, nApiRelFlag, true );
-        ornRelPos = ornAbsPos - nBasePos;
-    }
-}
-
-void lclConvertSingleRefFlags( SingleReference& orApiRef, const ScAddress& rBaseAddr, bool bColRel, bool bRowRel )
-{
-    using namespace ::com::sun::star::sheet::ReferenceFlags;
-    lclConvertRefFlags(
-        orApiRef.Flags, orApiRef.Column, orApiRef.RelativeColumn,
-        sal_Int32( rBaseAddr.Col() ), COLUMN_RELATIVE, bColRel );
-    lclConvertRefFlags(
-        orApiRef.Flags, orApiRef.Row, orApiRef.RelativeRow,
-        rBaseAddr.Row(), ROW_RELATIVE, bRowRel );
-}
-
-Any lclConvertReference( const Any& rRefAny, const ScAddress& rBaseAddr, sal_uInt16 nRelFlags )
-{
-    if( rRefAny.has< SingleReference >() && !getFlag( nRelFlags, BIFF_REFFLAG_COL2REL ) && !getFlag( nRelFlags, BIFF_REFFLAG_ROW2REL ) )
-    {
-        SingleReference aApiRef;
-        rRefAny >>= aApiRef;
-        lclConvertSingleRefFlags( aApiRef, rBaseAddr, getFlag( nRelFlags, BIFF_REFFLAG_COL1REL ), getFlag( nRelFlags, BIFF_REFFLAG_ROW1REL ) );
-        return Any( aApiRef );
-    }
-    if( rRefAny.has< ComplexReference >() )
-    {
-        ComplexReference aApiRef;
-        rRefAny >>= aApiRef;
-        lclConvertSingleRefFlags( aApiRef.Reference1, rBaseAddr, getFlag( nRelFlags, BIFF_REFFLAG_COL1REL ), getFlag( nRelFlags, BIFF_REFFLAG_ROW1REL ) );
-        lclConvertSingleRefFlags( aApiRef.Reference2, rBaseAddr, getFlag( nRelFlags, BIFF_REFFLAG_COL2REL ), getFlag( nRelFlags, BIFF_REFFLAG_ROW2REL ) );
-        return Any( aApiRef );
-    }
-    return Any();
-}
-
 } // namespace
 
 DefinedNameModel::DefinedNameModel() :
@@ -201,34 +149,6 @@ const OUString& DefinedNameBase::getUpcaseModelName() const
     return maUpModelName;
 }
 
-Any DefinedNameBase::getReference( const ScAddress& rBaseAddr ) const
-{
-    if( maRefAny.hasValue() && (maModel.maName.getLength() >= 2) && (maModel.maName[ 0 ] == '\x01') )
-    {
-        sal_Unicode cFlagsChar = getUpcaseModelName()[ 1 ];
-        if( ('A' <= cFlagsChar) && (cFlagsChar <= 'P') )
-        {
-            sal_uInt16 nRelFlags = static_cast< sal_uInt16 >( cFlagsChar - 'A' );
-            if( maRefAny.has< ExternalReference >() )
-            {
-                ExternalReference aApiExtRef;
-                maRefAny >>= aApiExtRef;
-                Any aRefAny = lclConvertReference( aApiExtRef.Reference, rBaseAddr, nRelFlags );
-                if( aRefAny.hasValue() )
-                {
-                    aApiExtRef.Reference = aRefAny;
-                    return Any( aApiExtRef );
-                }
-            }
-            else
-            {
-                return lclConvertReference( maRefAny, rBaseAddr, nRelFlags );
-            }
-        }
-    }
-    return Any();
-}
-
 DefinedName::DefinedName( const WorkbookHelper& rHelper ) :
     DefinedNameBase( rHelper ),
     mpScRangeData(nullptr),
diff --git a/sc/source/filter/oox/formulaparser.cxx b/sc/source/filter/oox/formulaparser.cxx
index 85ae9fa786cc..888f0465a53d 100644
--- a/sc/source/filter/oox/formulaparser.cxx
+++ b/sc/source/filter/oox/formulaparser.cxx
@@ -465,7 +465,6 @@ protected:
     ApiToken&           getOperandToken( size_t nOpIndex, size_t nTokenIndex );
 
     bool                pushOperandToken( sal_Int32 nOpCode, const WhiteSpaceVec* pSpaces = nullptr );
-    bool                pushAnyOperandToken( const Any& rAny, sal_Int32 nOpCode, const WhiteSpaceVec* pSpaces = nullptr );
     template< typename Type >
     bool                pushValueOperandToken( const Type& rValue, sal_Int32 nOpCode, const WhiteSpaceVec* pSpaces = nullptr );
     template< typename Type >
@@ -480,7 +479,6 @@ protected:
     bool                pushFunctionOperatorToken( const FunctionInfo& rFuncInfo, size_t nParamCount, const WhiteSpaceVec* pLeadingSpaces = nullptr, const WhiteSpaceVec* pClosingSpaces = nullptr );
 
     bool                pushOperand( sal_Int32 nOpCode );
-    bool                pushAnyOperand( const Any& rAny, sal_Int32 nOpCode );
     template< typename Type >
     bool                pushValueOperand( const Type& rValue, sal_Int32 nOpCode );
     template< typename Type >
@@ -734,14 +732,6 @@ bool FormulaParserImpl::pushOperandToken( sal_Int32 nOpCode, const WhiteSpaceVec
     return true;
 }
 
-bool FormulaParserImpl::pushAnyOperandToken( const Any& rAny, sal_Int32 nOpCode, const WhiteSpaceVec* pSpaces )
-{
-    size_t nSpacesSize = appendWhiteSpaceTokens( pSpaces );
-    appendRawToken( nOpCode ) = rAny;
-    pushOperandSize( nSpacesSize + 1 );
-    return true;
-}
-
 template< typename Type >
 bool FormulaParserImpl::pushValueOperandToken( const Type& rValue, sal_Int32 nOpCode, const WhiteSpaceVec* pSpaces )
 {
@@ -853,11 +843,6 @@ bool FormulaParserImpl::pushOperand( sal_Int32 nOpCode )
     return pushOperandToken( nOpCode, &maLeadingSpaces ) && resetSpaces();
 }
 
-bool FormulaParserImpl::pushAnyOperand( const Any& rAny, sal_Int32 nOpCode )
-{
-    return pushAnyOperandToken( rAny, nOpCode, &maLeadingSpaces ) && resetSpaces();
-}
-
 template< typename Type >
 bool FormulaParserImpl::pushValueOperand( const Type& rValue, sal_Int32 nOpCode )
 {
@@ -946,9 +931,6 @@ bool FormulaParserImpl::pushReferenceOperand( const LinkSheetRange& rSheetRange,
 
 bool FormulaParserImpl::pushEmbeddedRefOperand( const DefinedNameBase& rName, bool bPushBadToken )
 {
-    Any aRefAny = rName.getReference( maBaseAddr );
-    if( aRefAny.hasValue() )
-        return pushAnyOperand( aRefAny, OPCODE_PUSH );
     if( bPushBadToken && !rName.getModelName().isEmpty() && (rName.getModelName()[ 0 ] >= ' ') )
         return pushValueOperand( rName.getModelName(), OPCODE_BAD );
     return pushBiffErrorOperand( BIFF_ERR_NAME );
diff --git a/sc/source/filter/oox/workbooksettings.cxx b/sc/source/filter/oox/workbooksettings.cxx
index b328b6516ff0..cc7366ffd83f 100644
--- a/sc/source/filter/oox/workbooksettings.cxx
+++ b/sc/source/filter/oox/workbooksettings.cxx
@@ -97,8 +97,7 @@ CalcSettingsModel::CalcSettingsModel() :
     mbCalcCompleted( true ),
     mbFullPrecision( true ),
     mbIterate( false ),
-    mbConcurrent( true ),
-    mbUseNlr( false )
+    mbConcurrent( true )
 {
 }
 
@@ -233,7 +232,7 @@ void WorkbookSettings::finalizeImport()
     aPropSet.setProperty( PROP_IterationCount,     maCalcSettings.mnIterateCount );
     aPropSet.setProperty( PROP_IterationEpsilon,   maCalcSettings.mfIterateDelta );
     aPropSet.setProperty( PROP_CalcAsShown,        !maCalcSettings.mbFullPrecision );
-    aPropSet.setProperty( PROP_LookUpLabels,       maCalcSettings.mbUseNlr );
+    aPropSet.setProperty( PROP_LookUpLabels,       false );
 
     Reference< XNumberFormatsSupplier > xNumFmtsSupp( getDocument(), UNO_QUERY );
     if( xNumFmtsSupp.is() )
diff --git a/sd/source/ui/dlg/RemoteDialogClientBox.cxx b/sd/source/ui/dlg/RemoteDialogClientBox.cxx
index 41066418063a..b421f13f3630 100644
--- a/sd/source/ui/dlg/RemoteDialogClientBox.cxx
+++ b/sd/source/ui/dlg/RemoteDialogClientBox.cxx
@@ -65,7 +65,6 @@ ClientBox::ClientBox( vcl::Window* pParent, WinBits nStyle ) :
     m_bHasActive( false ),
     m_bNeedsRecalc( true ),
     m_bAdjustActive( false ),
-    m_bInDelete( false ),
     m_nActive( 0 ),
     m_nTopIndex( 0 ),
     m_nActiveHeight( 0 ),
@@ -118,11 +117,6 @@ ClientBox::~ClientBox()
 
 void ClientBox::dispose()
 {
-    if ( ! m_bInDelete )
-        DeleteRemoved();
-
-    m_bInDelete = true;
-
     m_vEntries.clear();
 
     m_xRemoveListener.clear();
@@ -185,20 +179,6 @@ void ClientBox::CalcActiveHeight()
     return ::tools::Rectangle( aPos, aSize );
 }
 
-void ClientBox::DeleteRemoved()
-{
-    const ::osl::MutexGuard aGuard( m_entriesMutex );
-
-    m_bInDelete = true;
-
-    if ( ! m_vRemovedEntries.empty() )
-    {
-        m_vRemovedEntries.clear();
-    }
-
-    m_bInDelete = false;
-}
-
 long ClientBox::GetActiveEntryIndex()
 {
     if ( m_bHasActive )
@@ -469,9 +449,6 @@ bool ClientBox::HandleCursorKey( sal_uInt16 nKeyCode )
 
 void ClientBox::Paint(vcl::RenderContext& rRenderContext, const ::tools::Rectangle &/*rPaintRect*/)
 {
-    if (!m_bInDelete)
-        DeleteRemoved();
-
     if (m_bNeedsRecalc)
         RecalcAll();
 
@@ -576,9 +553,6 @@ void ClientBox::MouseButtonDown( const MouseEvent& rMEvt )
 
 bool ClientBox::EventNotify( NotifyEvent& rNEvt )
 {
-    if ( !m_bInDelete )
-        DeleteRemoved();
-
     bool bHandled = false;
 
     if ( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
diff --git a/sd/source/ui/dlg/RemoteDialogClientBox.hxx b/sd/source/ui/dlg/RemoteDialogClientBox.hxx
index bdaa5cf77f4a..c839165a79cc 100644
--- a/sd/source/ui/dlg/RemoteDialogClientBox.hxx
+++ b/sd/source/ui/dlg/RemoteDialogClientBox.hxx
@@ -87,7 +87,6 @@ class ClientBox : public Control
     bool m_bHasActive : 1;
     bool m_bNeedsRecalc : 1;
     bool m_bAdjustActive : 1;
-    bool m_bInDelete : 1;
     //Must be guarded together with m_vEntries to ensure a valid index at all times.
     //Use m_entriesMutex as guard.
     long m_nActive;
@@ -112,14 +111,12 @@ class ClientBox : public Control
     //while new entries are added / removed in a separate thread.
     mutable ::osl::Mutex    m_entriesMutex;
     std::vector< TClientBoxEntry > m_vEntries;
-    std::vector< TClientBoxEntry > m_vRemovedEntries;
 
     void CalcActiveHeight();
     long GetTotalHeight() const;
     void SetupScrollBar();
     void DrawRow(vcl::RenderContext& rRenderContext, const ::tools::Rectangle& rRect, const TClientBoxEntry& rEntry);
     bool HandleCursorKey( sal_uInt16 nKeyCode );
-    void DeleteRemoved();
 
     DECL_LINK( ScrollHdl, ScrollBar*, void );
     DECL_LINK( DeauthoriseHdl, Button*, void );
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index 7537c3e8ab31..ddcd4dc0b344 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -102,15 +102,10 @@ class ViewShellObjectBarFactory
 {
 public:
     explicit ViewShellObjectBarFactory (::sd::ViewShell& rViewShell);
-    virtual ~ViewShellObjectBarFactory() override;
     virtual SfxShell* CreateShell( ::sd::ShellId nId ) override;
     virtual void ReleaseShell (SfxShell* pShell) override;
 private:
     ::sd::ViewShell& mrViewShell;
-    /** This cache holds the already created object bars.
-    */
-    typedef ::std::map< ::sd::ShellId,SfxShell*> ShellCache;
-    ShellCache maShellCache;
 };
 
 } // end of anonymous namespace
@@ -1637,64 +1632,48 @@ ViewShellObjectBarFactory::ViewShellObjectBarFactory (
 {
 }
 
-ViewShellObjectBarFactory::~ViewShellObjectBarFactory()
-{
-    for (ShellCache::iterator aI(maShellCache.begin());
-         aI!=maShellCache.end();
-         ++aI)
-    {
-        delete aI->second;
-    }
-}
-
 SfxShell* ViewShellObjectBarFactory::CreateShell( ::sd::ShellId nId )
 {
     SfxShell* pShell = nullptr;
 
-    ShellCache::iterator aI (maShellCache.find(nId));
-    if (aI == maShellCache.end() || aI->second==nullptr)
+    ::sd::View* pView = mrViewShell.GetView();
+    switch (nId)
     {
-        ::sd::View* pView = mrViewShell.GetView();
-        switch (nId)
-        {
-            case ToolbarId::Bezier_Toolbox_Sd:
-                pShell = new ::sd::BezierObjectBar(&mrViewShell, pView);
-                break;
-
-            case ToolbarId::Draw_Text_Toolbox_Sd:
-                pShell = new ::sd::TextObjectBar(
-                    &mrViewShell, mrViewShell.GetDoc()->GetPool(), pView);
-                break;
-
-            case ToolbarId::Draw_Graf_Toolbox:
-                pShell = new ::sd::GraphicObjectBar(&mrViewShell, pView);
-                break;
-
-            case ToolbarId::Draw_Media_Toolbox:
-                pShell = new ::sd::MediaObjectBar(&mrViewShell, pView);
-                break;
-
-            case ToolbarId::Draw_Table_Toolbox:
-                pShell = ::sd::ui::table::CreateTableObjectBar( mrViewShell, pView );
-                break;
-
-            case ToolbarId::Svx_Extrusion_Bar:
-                pShell = new svx::ExtrusionBar(
-                    &mrViewShell.GetViewShellBase());
-                break;
-
-            case ToolbarId::Svx_Fontwork_Bar:
-                pShell = new svx::FontworkBar(
-                    &mrViewShell.GetViewShellBase());
-                break;
-
-            default:
-                pShell = nullptr;
-                break;
-        }
+        case ToolbarId::Bezier_Toolbox_Sd:
+            pShell = new ::sd::BezierObjectBar(&mrViewShell, pView);
+            break;
+
+        case ToolbarId::Draw_Text_Toolbox_Sd:
+            pShell = new ::sd::TextObjectBar(
+                &mrViewShell, mrViewShell.GetDoc()->GetPool(), pView);
+            break;
+
+        case ToolbarId::Draw_Graf_Toolbox:
+            pShell = new ::sd::GraphicObjectBar(&mrViewShell, pView);
+            break;
+
+        case ToolbarId::Draw_Media_Toolbox:
+            pShell = new ::sd::MediaObjectBar(&mrViewShell, pView);
+            break;
+
+        case ToolbarId::Draw_Table_Toolbox:
+            pShell = ::sd::ui::table::CreateTableObjectBar( mrViewShell, pView );
+            break;
+
+        case ToolbarId::Svx_Extrusion_Bar:
+            pShell = new svx::ExtrusionBar(
+                &mrViewShell.GetViewShellBase());
+            break;
+
+         case ToolbarId::Svx_Fontwork_Bar:
+            pShell = new svx::FontworkBar(
+                &mrViewShell.GetViewShellBase());
+            break;
+
+        default:
+            pShell = nullptr;
+            break;
     }
-    else
-        pShell = aI->second;
 
     return pShell;
 }
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index 27b0dd71d304..432663803437 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -1701,8 +1701,6 @@ sal_Int64 FontSizeBox::GetValueFromStringUnit(const OUString& rStr, FieldUnit eO
 SvtFontSizeBox::SvtFontSizeBox(std::unique_ptr<weld::ComboBox> p)
     : pFontList(nullptr)
     , nSavedValue(0)
-    , nMin(20)
-    , nMax(9999)
     , eUnit(FUNIT_POINT)
     , nDecimalDigits(1)
     , nRelMin(0)
@@ -1918,7 +1916,6 @@ void SvtFontSizeBox::SetRelative( bool bNewRelative )
         if (bPtRelative)
         {
             SetDecimalDigits( 1 );
-            SetRange(nPtRelMin, nPtRelMax);
             SetUnit(FUNIT_POINT);
 
             short i = nPtRelMin, n = 0;
@@ -1932,7 +1929,6 @@ void SvtFontSizeBox::SetRelative( bool bNewRelative )
         else
         {
             SetDecimalDigits(0);
-            SetRange(nRelMin, nRelMax);
             SetUnit(FUNIT_PERCENT);
 
             sal_uInt16 i = nRelMin;
@@ -1949,7 +1945,6 @@ void SvtFontSizeBox::SetRelative( bool bNewRelative )
             m_xComboBox->clear();
         bRelative = bPtRelative = false;
         SetDecimalDigits(1);
-        SetRange(20, 9999);
         SetUnit(FUNIT_POINT);
         if ( pFontList)
             Fill( &aFontMetric, pFontList );
diff --git a/unotools/source/config/eventcfg.cxx b/unotools/source/config/eventcfg.cxx
index 93c74e23f7c4..85ca9b2862f8 100644
--- a/unotools/source/config/eventcfg.cxx
+++ b/unotools/source/config/eventcfg.cxx
@@ -85,7 +85,6 @@ class GlobalEventConfig_Impl : public utl::ConfigItem
 {
 private:
     EventBindingHash m_eventBindingHash;
-    FrameVector m_lFrames;
     SupportedEventsVector m_supportedEvents;
 
     void initBindingInfo();
@@ -154,20 +153,6 @@ void GlobalEventConfig_Impl::Notify( const Sequence< OUString >& )
     MutexGuard aGuard( GlobalEventConfig::GetOwnStaticMutex() );
 
     initBindingInfo();
-
-    // don't forget to update all existing frames and her might cached dispatch objects!
-    // But look for already killed frames. We hold weak references instead of hard ones ...
-    for (FrameVector::iterator pIt  = m_lFrames.begin(); pIt != m_lFrames.end(); )
-    {
-        css::uno::Reference< css::frame::XFrame > xFrame(pIt->get(), css::uno::UNO_QUERY);
-        if (xFrame.is())
-        {
-            xFrame->contextChanged();
-            ++pIt;
-        }
-        else
-            pIt = m_lFrames.erase(pIt);
-    }
 }
 
 //  public method
diff --git a/vcl/inc/printdlg.hxx b/vcl/inc/printdlg.hxx
index 626e3ccd9403..f0021b28388c 100644
--- a/vcl/inc/printdlg.hxx
+++ b/vcl/inc/printdlg.hxx
@@ -195,7 +195,6 @@ namespace vcl
         std::map< OUString, std::vector< VclPtr<vcl::Window> > >
                                                 maPropertyToWindowMap;
         std::map< VclPtr<vcl::Window>, sal_Int32 >          maControlToNumValMap;
-        std::set< OUString >                    maReverseDependencySet;
 
         Size                                    maNupPortraitSize;
         Size                                    maNupLandscapeSize;
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
index 819b3c7ca6e3..725cba29a8d0 100644
--- a/vcl/source/window/printdlg.cxx
+++ b/vcl/source/window/printdlg.cxx
@@ -1303,23 +1303,6 @@ void PrintDialog::checkOptionalControlDependencies()
          it != maControlToPropertyMap.end(); ++it )
     {
         bool bShouldbeEnabled = maPController->isUIOptionEnabled( it->second );
-        if( ! bShouldbeEnabled )
-        {
-            // enable controls that are directly attached to a dependency anyway
-            // if the normally disabled controls get modified, change the dependency
-            // so the control would be enabled
-            // example: in print range "Print All" is selected, "Page Range" is then of course
-            // not selected and the Edit for the Page Range would be disabled
-            // as a convenience we should enable the Edit anyway and automatically select
-            // "Page Range" instead of "Print All" if the Edit gets modified
-            if( maReverseDependencySet.find( it->second ) != maReverseDependencySet.end() )
-            {
-                OUString aDep( maPController->getDependency( it->second ) );
-                // if the dependency is at least enabled, then enable this control anyway
-                if( !aDep.isEmpty() && maPController->isUIOptionEnabled( aDep ) )
-                    bShouldbeEnabled = true;
-            }
-        }
 
         if( bShouldbeEnabled && dynamic_cast<RadioButton*>(it->first.get()) )
         {
diff --git a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
index 5fd173689ba9..ef68129496d6 100644
--- a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
+++ b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
@@ -106,7 +106,7 @@ static char* GetPasswordFunction( PK11SlotInfo* pSlot, PRBool bRetry, void* /*ar
 }
 
 SecurityEnvironment_NssImpl::SecurityEnvironment_NssImpl() :
-m_pHandler( nullptr ) , m_tSymKeyList() , m_tPubKeyList() , m_tPriKeyList() {
+m_pHandler( nullptr ) , m_tSymKeyList() {
     PK11_SetPasswordFunc( GetPasswordFunction ) ;
 }
 
@@ -123,16 +123,6 @@ SecurityEnvironment_NssImpl::~SecurityEnvironment_NssImpl() {
         for( auto& symKey : m_tSymKeyList )
             PK11_FreeSymKey( symKey ) ;
     }
-
-    if( !m_tPubKeyList.empty()  ) {
-        for( auto& pubKeyIt : m_tPubKeyList )
-            SECKEY_DestroyPublicKey( pubKeyIt ) ;
-    }
-
-    if( !m_tPriKeyList.empty()  ) {
-        for( auto& priKey : m_tPriKeyList )
-            SECKEY_DestroyPrivateKey( priKey ) ;
-    }
 }
 
 /* XServiceInfo */
@@ -313,15 +303,6 @@ SecurityEnvironment_NssImpl::getPersonalCertificates()
 
     }
 
-    //secondly, we try to find certificate from registered private keys.
-    if( !m_tPriKeyList.empty()  ) {
-        for( const auto& priKey : m_tPriKeyList ) {
-            xcert = NssPrivKeyToXCert( priKey ) ;
-            if( xcert != nullptr )
-                certsList.push_back( xcert ) ;
-        }
-    }
-
     length = certsList.size() ;
     if( length != 0 ) {
         int i = 0;
diff --git a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx
index c61ade4ab876..aec7f5bbcead 100644
--- a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx
+++ b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx
@@ -60,8 +60,6 @@ private:
 
         CERTCertDBHandle*                   m_pHandler ;
         std::list< PK11SymKey* >            m_tSymKeyList ;
-        std::list< SECKEYPublicKey* >       m_tPubKeyList ;
-        std::list< SECKEYPrivateKey* >      m_tPriKeyList ;
 
     public:
         SecurityEnvironment_NssImpl();


More information about the Libreoffice-commits mailing list