[Libreoffice-commits] core.git: compilerplugins/clang include/svtools svtools/source

Noel Grandin noel at peralex.com
Wed Jun 4 05:49:36 PDT 2014


 compilerplugins/clang/inlinesimplememberfunctions.cxx |  282 ++++++++++++++++++
 include/svtools/fmtfield.hxx                          |    2 
 include/svtools/ruler.hxx                             |    2 
 include/svtools/treelistentry.hxx                     |    4 
 include/svtools/viewdataentry.hxx                     |   12 
 svtools/source/config/optionsdrawinglayer.cxx         |  150 +--------
 svtools/source/contnr/treelistentry.cxx               |    8 
 svtools/source/contnr/viewdataentry.cxx               |   24 -
 svtools/source/control/ctrlbox.cxx                    |   12 
 svtools/source/control/fmtfield.cxx                   |    4 
 svtools/source/control/ruler.cxx                      |    4 
 svtools/source/table/tablecontrol_impl.cxx            |    8 
 svtools/source/table/tablecontrol_impl.hxx            |    4 
 13 files changed, 321 insertions(+), 195 deletions(-)

New commits:
commit 6f2edd4514dc59f5cbac8c653c6e4b1a96ec28a2
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Jun 3 13:54:07 2014 +0200

    new loplugin: inlinesimpleaccessmethods
    
    Create a rewriting plugin for finding methods that simply return
    object fields, and should therefore be declared in the header,
    so that the compiler can reduce method calls into a simple
    fixed-offset load instruction.
    
    Change-Id: I7a620fc54250b79681918dc31ed9a8f21118c037
    Signed-off-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/compilerplugins/clang/inlinesimplememberfunctions.cxx b/compilerplugins/clang/inlinesimplememberfunctions.cxx
new file mode 100644
index 0000000..4bee14c
--- /dev/null
+++ b/compilerplugins/clang/inlinesimplememberfunctions.cxx
@@ -0,0 +1,282 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <string>
+
+#include "plugin.hxx"
+
+// Methods that purely return a local field should be declared in the header and be declared inline.
+// So that the compiler can elide the function call and turn it into a simple fixed-offset-load instruction.
+
+namespace {
+
+class InlineSimpleMemberFunctions:
+    public RecursiveASTVisitor<InlineSimpleMemberFunctions>, public loplugin::RewritePlugin
+{
+public:
+    explicit InlineSimpleMemberFunctions(InstantiationData const & data): RewritePlugin(data) {}
+
+    virtual void run() override { TraverseDecl(compiler.getASTContext().getTranslationUnitDecl()); }
+
+    bool VisitCXXMethodDecl(const CXXMethodDecl * decl);
+private:
+    bool isInUnoIncludeFile(SourceLocation spellingLocation) const;
+    bool isInMainFile(SourceLocation spellingLocation) const;
+    bool rewrite(const CXXMethodDecl * functionDecl);
+};
+
+static bool oneAndOnlyOne(clang::Stmt::const_child_range range) {
+    if (range.empty()) {
+        return false;
+    }
+    if ((++range.first) != range.second) {
+        return false;
+    }
+    return true;
+}
+
+
+bool InlineSimpleMemberFunctions::VisitCXXMethodDecl(const CXXMethodDecl * functionDecl) {
+    if (ignoreLocation(functionDecl)) {
+        return true;
+    }
+    // no point in doing virtual methods, the compiler always has to generate a vtable entry and a method
+    if (functionDecl->isVirtual()) {
+        return true;
+    }
+    if (functionDecl->getTemplatedKind() != FunctionDecl::TK_NonTemplate) {
+        return true;
+    }
+    if (!functionDecl->isInstance()) {
+        return true;
+    }
+    if (!functionDecl->isOutOfLine()) {
+        return true;
+    }
+    if( !functionDecl->hasBody()) {
+        return true;
+    }
+    if( functionDecl->isInlineSpecified()) {
+        return true;
+    }
+    // ignore stuff that forms part of the stable URE interface
+    if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(
+                              functionDecl->getCanonicalDecl()->getNameInfo().getLoc()))) {
+        return true;
+    }
+    // ignore stuff like:
+    //   template<class E> E * Sequence<E>::begin() { return getArray(); }
+    if( functionDecl->getParent()->getDescribedClassTemplate() != nullptr ) {
+        return true;
+    }
+
+    /*
+      The chain here looks like
+        CompoundStmt
+          ReturnStmt
+            other stuff
+              CXXThisExpr
+    */
+
+    const CompoundStmt* compoundStmt = dyn_cast< CompoundStmt >( functionDecl->getBody() );
+    if (compoundStmt == nullptr) {
+        return true;
+    }
+    if (compoundStmt->body_begin() == compoundStmt->body_end()) {
+        return true;
+    }
+
+
+    const Stmt* childStmt = *compoundStmt->child_begin();
+
+    if (dyn_cast<ReturnStmt>( childStmt ) == nullptr) {
+        return true;
+    }
+    if (!oneAndOnlyOne(childStmt->children())) {
+        return true;
+    }
+
+
+    /* Don't warn if we see a method definition like
+         X X::a() {
+             return *this;
+         }
+      which translates to:
+        CompoundStmt
+          ReturnStmt
+            ImplicitCastExpr
+              UnaryOperator
+                CXXThisExpr
+      or:
+        CompoundStmt
+          ReturnStmt
+            UnaryOperator
+              CXXThisExpr
+    */
+    childStmt = *childStmt->child_begin();
+    if (dyn_cast<ImplicitCastExpr>( childStmt ) != nullptr
+        && oneAndOnlyOne( childStmt->children() ))
+    {
+        const Stmt* childStmt2 = *childStmt->child_begin();
+        if (dyn_cast<UnaryOperator>( childStmt2 ) != nullptr
+            && oneAndOnlyOne(childStmt2->children()))
+        {
+            childStmt2 = *childStmt2->child_begin();
+            if (dyn_cast<CXXThisExpr>( childStmt2 ) != nullptr
+                && childStmt2->children().empty())
+            {
+                return true;
+            }
+        }
+    }
+    if (dyn_cast<UnaryOperator>( childStmt ) != nullptr
+        && oneAndOnlyOne( childStmt->children() ))
+    {
+        const Stmt* childStmt2 = *childStmt->child_begin();
+        if (dyn_cast<CXXThisExpr>( childStmt2 ) != nullptr
+            && childStmt2->children().empty())
+        {
+            return true;
+        }
+    }
+
+    /* look for a chain like:
+       CompoundStmt
+         ReturnStmt
+           ImplicitCastExpr
+             MemberExpr
+               CXXThisExpr
+    */
+    if (dyn_cast<ImplicitCastExpr>( childStmt ) != nullptr
+        && oneAndOnlyOne( childStmt->children() ))
+    {
+        const Stmt* childStmt2 = *childStmt->child_begin();
+        if (dyn_cast<MemberExpr>( childStmt2 ) != nullptr
+            && oneAndOnlyOne(childStmt2->children()))
+        {
+            childStmt2 = *childStmt2->child_begin();
+            if (dyn_cast<CXXThisExpr>( childStmt2 ) != nullptr
+                && childStmt2->children().empty())
+            {
+                if (!rewrite(functionDecl))
+                {
+                    report(
+                        DiagnosticsEngine::Warning,
+                        "inlinesimpleaccessmethods",
+                        functionDecl->getSourceRange().getBegin())
+                      << functionDecl->getSourceRange();
+                }
+                return true;
+            }
+        }
+    }
+
+    return true;
+}
+
+bool InlineSimpleMemberFunctions::isInUnoIncludeFile(SourceLocation spellingLocation) const {
+    StringRef name {
+        compiler.getSourceManager().getFilename(spellingLocation) };
+    return isInMainFile(spellingLocation)
+        ? (name == SRCDIR "/cppu/source/cppu/compat.cxx"
+           || name == SRCDIR "/cppuhelper/source/compat.cxx"
+           || name == SRCDIR "/sal/osl/all/compat.cxx")
+        : (name.startswith(SRCDIR "/include/com/")
+           || name.startswith(SRCDIR "/include/cppu/")
+           || name.startswith(SRCDIR "/include/cppuhelper/")
+           || name.startswith(SRCDIR "/include/osl/")
+           || name.startswith(SRCDIR "/include/rtl/")
+           || name.startswith(SRCDIR "/include/sal/")
+           || name.startswith(SRCDIR "/include/salhelper/")
+           || name.startswith(SRCDIR "/include/systools/")
+           || name.startswith(SRCDIR "/include/typelib/")
+           || name.startswith(SRCDIR "/include/uno/")
+           || name == SRCDIR "/include/comphelper/implbase_var.hxx");
+}
+
+bool InlineSimpleMemberFunctions::isInMainFile(SourceLocation spellingLocation) const {
+#if (__clang_major__ == 3 && __clang_minor__ >= 4) || __clang_major__ > 3
+    return compiler.getSourceManager().isInMainFile(spellingLocation);
+#else
+    return compiler.getSourceManager().isFromMainFile(spellingLocation);
+#endif
+}
+
+static std::string ReplaceString(std::string subject, const std::string& search,
+                          const std::string& replace) {
+    size_t pos = 0;
+    while ((pos = subject.find(search, pos)) != std::string::npos) {
+         subject.replace(pos, search.length(), replace);
+         pos += replace.length();
+    }
+    return subject;
+}
+
+bool InlineSimpleMemberFunctions::rewrite(const CXXMethodDecl * functionDecl) {
+    if (rewriter == nullptr) {
+        return false;
+    }
+    // Only rewrite declarations in include files if a
+    // definition is also seen, to avoid compilation of a
+    // definition (in a main file only processed later) to fail
+    // with a "mismatch" error before the rewriter had a chance
+    // to act upon the definition.
+    if (!isInMainFile(
+               compiler.getSourceManager().getSpellingLoc(
+                   functionDecl->getNameInfo().getLoc()))) {
+        return false;
+    }
+
+    const char *p1, *p2;
+
+    // get the function body contents
+    p1 = compiler.getSourceManager().getCharacterData( functionDecl->getBody()->getLocStart() );
+    p2 = compiler.getSourceManager().getCharacterData( functionDecl->getBody()->getLocEnd() );
+    std::string s1( p1, p2 - p1 + 1);
+    // strip linefeeds and any double-spaces, so we have a max of one space between tokens
+    s1 = ReplaceString(s1, "\r", "");
+    s1 = ReplaceString(s1, "\n", "");
+    s1 = ReplaceString(s1, "\t", " ");
+    s1 = ReplaceString(s1, "  ", " ");
+    s1 = ReplaceString(s1, "  ", " ");
+    s1 = ReplaceString(s1, "  ", " ");
+    s1 = " " + s1;
+
+    // scan from the end of the functions body through the whitespace, so we can do a nice clean remove
+// commented out because for some reason it will sometimes chomp an extra token
+//    SourceLocation endOfRemoveLoc = functionDecl->getBody()->getLocEnd();
+//    for (;;) {
+//        endOfRemoveLoc = endOfRemoveLoc.getLocWithOffset(1);
+//        p1 = compiler.getSourceManager().getCharacterData( endOfRemoveLoc );
+//        if (*p1 != ' ' && *p1 != '\r' && *p1 != '\n' && *p1 != '\t')
+//            break;
+//    }
+
+    // remove the function's out of line body and declaration
+    RewriteOptions opts;
+    opts.RemoveLineIfEmpty = true;
+    if (!removeText(SourceRange(functionDecl->getLocStart(), functionDecl->getBody()->getLocEnd()), opts)) {
+        return false;
+    }
+
+    // scan forward until we find the semicolon
+    const FunctionDecl * canonicalDecl = functionDecl->getCanonicalDecl();
+    p1 = compiler.getSourceManager().getCharacterData( canonicalDecl->getLocEnd() );
+    p2 = ++p1;
+    while (*p2 != 0 && *p2 != ';') p2++;
+
+    // insert the function body into the inline function definition (i.e. the one inside the class definition)
+    return replaceText(canonicalDecl->getLocEnd().getLocWithOffset(p2 - p1 + 1), 1, s1);
+}
+
+loplugin::Plugin::Registration< InlineSimpleMemberFunctions > X("inlinesimplememberfunctions");
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svtools/fmtfield.hxx b/include/svtools/fmtfield.hxx
index 792465f..d7bd1f1 100644
--- a/include/svtools/fmtfield.hxx
+++ b/include/svtools/fmtfield.hxx
@@ -231,7 +231,7 @@ public:
         using F2
      */
     void    UseInputStringForFormatting( bool bUseInputStr = true );
-    bool    IsUsingInputStringForFormatting() const;
+    bool    IsUsingInputStringForFormatting() const { return m_bUseInputStringForFormatting;}
 
 protected:
     virtual bool Notify(NotifyEvent& rNEvt) SAL_OVERRIDE;
diff --git a/include/svtools/ruler.hxx b/include/svtools/ruler.hxx
index 1468ec4..67eb55d 100644
--- a/include/svtools/ruler.hxx
+++ b/include/svtools/ruler.hxx
@@ -707,7 +707,7 @@ private:
     Ruler& operator= (const Ruler &);
 
 protected:
-    long            GetRulerVirHeight() const;
+    long            GetRulerVirHeight() const { return mnVirHeight;}
     MapMode         GetCurrentMapMode() const { return maMapMode; }
     RulerUnitData   GetCurrentRulerUnit() const;
 
diff --git a/include/svtools/treelistentry.hxx b/include/svtools/treelistentry.hxx
index d5cdf05..0f74d97 100644
--- a/include/svtools/treelistentry.hxx
+++ b/include/svtools/treelistentry.hxx
@@ -90,13 +90,13 @@ public:
     const SvLBoxItem* GetFirstItem( sal_uInt16 nId ) const;
     SvLBoxItem* GetFirstItem( sal_uInt16 nId );
     size_t GetPos( const SvLBoxItem* pItem ) const;
-    void*       GetUserData() const;
+    void*       GetUserData() const { return pUserData;}
     void        SetUserData( void* pPtr );
     void        EnableChildrenOnDemand( bool bEnable=true );
     bool        HasChildrenOnDemand() const;
     bool        HasInUseEmphasis() const;
 
-    sal_uInt16 GetFlags() const;
+    sal_uInt16 GetFlags() const { return nEntryFlags;}
     void SetFlags( sal_uInt16 nFlags );
 
     bool GetIsMarked() const { return bIsMarked; }
diff --git a/include/svtools/viewdataentry.hxx b/include/svtools/viewdataentry.hxx
index 31681af..b24910b 100644
--- a/include/svtools/viewdataentry.hxx
+++ b/include/svtools/viewdataentry.hxx
@@ -58,12 +58,12 @@ public:
     SvViewDataEntry( const SvViewDataEntry& );
     ~SvViewDataEntry();
 
-    bool IsSelected() const;
-    bool IsHighlighted() const;
-    bool IsExpanded() const;
-    bool HasFocus() const;
-    bool IsCursored() const;
-    bool IsSelectable() const;
+    bool IsSelected() const { return mbSelected;}
+    bool IsHighlighted() const { return mbHighlighted;}
+    bool IsExpanded() const { return mbExpanded;}
+    bool HasFocus() const { return mbFocused;}
+    bool IsCursored() const { return mbCursored;}
+    bool IsSelectable() const { return mbSelectable;}
     void SetFocus( bool bFocus );
     void SetSelected( bool bSelected );
     void SetHighlighted( bool bHighlighted );
diff --git a/svtools/source/config/optionsdrawinglayer.cxx b/svtools/source/config/optionsdrawinglayer.cxx
index d0cc92b..07fa25c 100644
--- a/svtools/source/config/optionsdrawinglayer.cxx
+++ b/svtools/source/config/optionsdrawinglayer.cxx
@@ -181,48 +181,48 @@ public:
 //  public interface
 
 
-    bool        IsOverlayBuffer() const;
-    bool        IsPaintBuffer() const;
+    bool        IsOverlayBuffer() const { return m_bOverlayBuffer;}
+    bool        IsPaintBuffer() const { return m_bPaintBuffer;}
     Color       GetStripeColorA() const;
     Color       GetStripeColorB() const;
-    sal_uInt16  GetStripeLength() const;
+    sal_uInt16  GetStripeLength() const { return m_nStripeLength;}
 
     // #i73602#
-    bool        IsOverlayBuffer_Calc() const;
-    bool        IsOverlayBuffer_Writer() const;
-    bool        IsOverlayBuffer_DrawImpress() const;
+    bool        IsOverlayBuffer_Calc() const { return m_bOverlayBuffer_Calc;}
+    bool        IsOverlayBuffer_Writer() const { return m_bOverlayBuffer_Writer;}
+    bool        IsOverlayBuffer_DrawImpress() const { return m_bOverlayBuffer_DrawImpress;}
 
     // #i74769#, #i75172#
-    bool        IsPaintBuffer_Calc() const;
-    bool        IsPaintBuffer_Writer() const;
-    bool        IsPaintBuffer_DrawImpress() const;
+    bool        IsPaintBuffer_Calc() const { return m_bPaintBuffer_Calc;}
+    bool        IsPaintBuffer_Writer() const { return m_bPaintBuffer_Writer;}
+    bool        IsPaintBuffer_DrawImpress() const { return m_bPaintBuffer_DrawImpress;}
 
     // #i4219#
-    sal_uInt32  GetMaximumPaperWidth() const;
-    sal_uInt32  GetMaximumPaperHeight() const;
-    sal_uInt32  GetMaximumPaperLeftMargin() const;
-    sal_uInt32  GetMaximumPaperRightMargin() const;
-    sal_uInt32  GetMaximumPaperTopMargin() const;
-    sal_uInt32  GetMaximumPaperBottomMargin() const;
+    sal_uInt32  GetMaximumPaperWidth() const { return m_nMaximumPaperWidth;}
+    sal_uInt32  GetMaximumPaperHeight() const { return m_nMaximumPaperHeight;}
+    sal_uInt32  GetMaximumPaperLeftMargin() const { return m_nMaximumPaperLeftMargin;}
+    sal_uInt32  GetMaximumPaperRightMargin() const { return m_nMaximumPaperRightMargin;}
+    sal_uInt32  GetMaximumPaperTopMargin() const { return m_nMaximumPaperTopMargin;}
+    sal_uInt32  GetMaximumPaperBottomMargin() const { return m_nMaximumPaperBottomMargin;}
 
     // helper
     bool        IsAAPossibleOnThisSystem() const;
 
     // primitives
-    bool        IsAntiAliasing() const;
-    bool        IsSnapHorVerLinesToDiscrete() const;
-    bool        IsSolidDragCreate() const;
-    bool        IsRenderDecoratedTextDirect() const;
-    bool        IsRenderSimpleTextDirect() const;
-    sal_uInt32  GetQuadratic3DRenderLimit() const;
-    sal_uInt32  GetQuadraticFormControlRenderLimit() const;
+    bool        IsAntiAliasing() const { return m_bAntiAliasing;}
+    bool        IsSnapHorVerLinesToDiscrete() const { return m_bSnapHorVerLinesToDiscrete;}
+    bool        IsSolidDragCreate() const { return m_bSolidDragCreate;}
+    bool        IsRenderDecoratedTextDirect() const { return m_bRenderDecoratedTextDirect;}
+    bool        IsRenderSimpleTextDirect() const { return m_bRenderSimpleTextDirect;}
+    sal_uInt32  GetQuadratic3DRenderLimit() const { return m_nQuadratic3DRenderLimit;}
+    sal_uInt32  GetQuadraticFormControlRenderLimit() const { return m_nQuadraticFormControlRenderLimit;}
 
     void        SetAntiAliasing( bool bState );
 
     // #i97672# selection settings
-    bool        IsTransparentSelection() const;
-    sal_uInt16  GetTransparentSelectionPercent() const;
-    sal_uInt16  GetSelectionMaximumLuminancePercent() const;
+    bool        IsTransparentSelection() const { return m_bTransparentSelection;}
+    sal_uInt16  GetTransparentSelectionPercent() const { return m_nTransparentSelectionPercent;}
+    sal_uInt16  GetSelectionMaximumLuminancePercent() const { return m_nSelectionMaximumLuminancePercent;}
 
     void        SetTransparentSelection( bool bState );
     void        SetTransparentSelectionPercent( sal_uInt16 nPercent );
@@ -693,18 +693,10 @@ void SvtOptionsDrawinglayer_Impl::Notify( const com::sun::star::uno::Sequence<OU
 
 //  public method
 
-bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer() const
-{
-    return m_bOverlayBuffer;
-}
 
 
 //  public method
 
-bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer() const
-{
-    return m_bPaintBuffer;
-}
 
 
 //  public method
@@ -725,73 +717,21 @@ Color SvtOptionsDrawinglayer_Impl::GetStripeColorB() const
 
 //  public method
 
-sal_uInt16 SvtOptionsDrawinglayer_Impl::GetStripeLength() const
-{
-    return m_nStripeLength;
-}
 
 // #i73602#
-bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer_Calc() const
-{
-    return m_bOverlayBuffer_Calc;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer_Writer() const
-{
-    return m_bOverlayBuffer_Writer;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsOverlayBuffer_DrawImpress() const
-{
-    return m_bOverlayBuffer_DrawImpress;
-}
 
 // #i74769#, #i75172#
-bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer_Calc() const
-{
-    return m_bPaintBuffer_Calc;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer_Writer() const
-{
-    return m_bPaintBuffer_Writer;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsPaintBuffer_DrawImpress() const
-{
-    return m_bPaintBuffer_DrawImpress;
-}
 
 // #i4219#
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperWidth() const
-{
-    return m_nMaximumPaperWidth;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperHeight() const
-{
-    return m_nMaximumPaperHeight;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperLeftMargin() const
-{
-    return m_nMaximumPaperLeftMargin;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperRightMargin() const
-{
-    return m_nMaximumPaperRightMargin;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperTopMargin() const
-{
-    return m_nMaximumPaperTopMargin;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetMaximumPaperBottomMargin() const
-{
-    return m_nMaximumPaperBottomMargin;
-}
 
 // helper
 bool SvtOptionsDrawinglayer_Impl::IsAAPossibleOnThisSystem() const
@@ -819,40 +759,12 @@ bool SvtOptionsDrawinglayer_Impl::IsAAPossibleOnThisSystem() const
 }
 
 // primitives
-bool SvtOptionsDrawinglayer_Impl::IsAntiAliasing() const
-{
-    return m_bAntiAliasing;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsSnapHorVerLinesToDiscrete() const
-{
-    return m_bSnapHorVerLinesToDiscrete;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsSolidDragCreate() const
-{
-    return m_bSolidDragCreate;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsRenderDecoratedTextDirect() const
-{
-    return m_bRenderDecoratedTextDirect;
-}
 
-bool SvtOptionsDrawinglayer_Impl::IsRenderSimpleTextDirect() const
-{
-    return m_bRenderSimpleTextDirect;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetQuadratic3DRenderLimit() const
-{
-    return m_nQuadratic3DRenderLimit;
-}
 
-sal_uInt32 SvtOptionsDrawinglayer_Impl::GetQuadraticFormControlRenderLimit() const
-{
-    return m_nQuadraticFormControlRenderLimit;
-}
 
 void SvtOptionsDrawinglayer_Impl::SetAntiAliasing( bool bState )
 {
@@ -864,10 +776,6 @@ void SvtOptionsDrawinglayer_Impl::SetAntiAliasing( bool bState )
 }
 
 // #i97672# selection settings
-bool SvtOptionsDrawinglayer_Impl::IsTransparentSelection() const
-{
-    return m_bTransparentSelection;
-}
 
 void SvtOptionsDrawinglayer_Impl::SetTransparentSelection( bool bState )
 {
@@ -887,15 +795,7 @@ void SvtOptionsDrawinglayer_Impl::SetTransparentSelectionPercent( sal_uInt16 nPe
     }
 }
 
-sal_uInt16 SvtOptionsDrawinglayer_Impl::GetTransparentSelectionPercent() const
-{
-    return m_nTransparentSelectionPercent;
-}
 
-sal_uInt16 SvtOptionsDrawinglayer_Impl::GetSelectionMaximumLuminancePercent() const
-{
-    return m_nSelectionMaximumLuminancePercent;
-}
 
 
 //  private method
diff --git a/svtools/source/contnr/treelistentry.cxx b/svtools/source/contnr/treelistentry.cxx
index 26d7dcd2..af34825 100644
--- a/svtools/source/contnr/treelistentry.cxx
+++ b/svtools/source/contnr/treelistentry.cxx
@@ -216,10 +216,6 @@ size_t SvTreeListEntry::GetPos( const SvLBoxItem* pItem ) const
     return it == maItems.end() ? ITEM_NOT_FOUND : std::distance(maItems.begin(), it);
 }
 
-void* SvTreeListEntry::GetUserData() const
-{
-    return pUserData;
-}
 
 void SvTreeListEntry::SetUserData( void* pPtr )
 {
@@ -236,10 +232,6 @@ bool SvTreeListEntry::HasInUseEmphasis() const
     return (bool)((nEntryFlags & SV_ENTRYFLAG_IN_USE)!=0);
 }
 
-sal_uInt16 SvTreeListEntry::GetFlags() const
-{
-    return nEntryFlags;
-}
 
 void SvTreeListEntry::SetFlags( sal_uInt16 nFlags )
 {
diff --git a/svtools/source/contnr/viewdataentry.cxx b/svtools/source/contnr/viewdataentry.cxx
index 3aeab97..fc8869f 100644
--- a/svtools/source/contnr/viewdataentry.cxx
+++ b/svtools/source/contnr/viewdataentry.cxx
@@ -51,35 +51,11 @@ SvViewDataEntry::~SvViewDataEntry()
 #endif
 }
 
-bool SvViewDataEntry::IsSelected() const
-{
-    return mbSelected;
-}
 
-bool SvViewDataEntry::IsHighlighted() const
-{
-    return mbHighlighted;
-}
 
-bool SvViewDataEntry::IsExpanded() const
-{
-    return mbExpanded;
-}
 
-bool SvViewDataEntry::HasFocus() const
-{
-    return mbFocused;
-}
 
-bool SvViewDataEntry::IsCursored() const
-{
-    return mbCursored;
-}
 
-bool SvViewDataEntry::IsSelectable() const
-{
-    return mbSelectable;
-}
 
 void SvViewDataEntry::SetFocus( bool bFocus )
 {
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index 4127155..dfc086e 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -453,8 +453,8 @@ public:
     Color  GetColorDist( const Color& aMain, const Color& rDefault );
 
     /** Returns the minimum width in twips */
-    long   GetMinWidth( );
-    sal_uInt16 GetStyle( );
+    long   GetMinWidth( ) { return m_nMinWidth;}
+    sal_uInt16 GetStyle( ) { return m_nStyle;}
 };
 
 ImpLineListData::ImpLineListData( BorderWidthImpl aWidthImpl,
@@ -469,10 +469,6 @@ ImpLineListData::ImpLineListData( BorderWidthImpl aWidthImpl,
 {
 }
 
-long ImpLineListData::GetMinWidth( )
-{
-    return m_nMinWidth;
-}
 
 Color ImpLineListData::GetColorLine1( const Color& rMain )
 {
@@ -503,10 +499,6 @@ sal_uInt16 LineListBox::GetSelectEntryStyle( sal_Int32 nSelIndex ) const
     return nStyle;
 }
 
-sal_uInt16 ImpLineListData::GetStyle( )
-{
-    return m_nStyle;
-}
 
 void lclDrawPolygon( OutputDevice& rDev, const basegfx::B2DPolygon& rPolygon, long nWidth, sal_uInt16 nDashing )
 {
diff --git a/svtools/source/control/fmtfield.cxx b/svtools/source/control/fmtfield.cxx
index e31bc11..272955d 100644
--- a/svtools/source/control/fmtfield.cxx
+++ b/svtools/source/control/fmtfield.cxx
@@ -1023,10 +1023,6 @@ void FormattedField::UseInputStringForFormatting( bool bUseInputStr /* = true */
     m_bUseInputStringForFormatting = bUseInputStr;
 }
 
-bool FormattedField::IsUsingInputStringForFormatting() const
-{
-    return m_bUseInputStringForFormatting;
-}
 
 DoubleNumericField::~DoubleNumericField()
 {
diff --git a/svtools/source/control/ruler.cxx b/svtools/source/control/ruler.cxx
index 4332966..bf719a3 100644
--- a/svtools/source/control/ruler.cxx
+++ b/svtools/source/control/ruler.cxx
@@ -2779,10 +2779,6 @@ long Ruler::GetMargin2() const
     return mpData->nMargin2;
 }
 
-long Ruler::GetRulerVirHeight() const
-{
-    return mnVirHeight;
-}
 
 bool Ruler::GetTextRTL()
 {
diff --git a/svtools/source/table/tablecontrol_impl.cxx b/svtools/source/table/tablecontrol_impl.cxx
index 344a2f2..f2b1b15 100644
--- a/svtools/source/table/tablecontrol_impl.cxx
+++ b/svtools/source/table/tablecontrol_impl.cxx
@@ -2453,16 +2453,8 @@ namespace svt { namespace table
     }
 
 
-    ScrollBar* TableControl_Impl::getHorzScrollbar()
-    {
-        return m_pHScroll;
-    }
 
 
-    ScrollBar* TableControl_Impl::getVertScrollbar()
-    {
-        return m_pVScroll;
-    }
 
 
     bool TableControl_Impl::isRowSelected( RowPos i_row ) const
diff --git a/svtools/source/table/tablecontrol_impl.hxx b/svtools/source/table/tablecontrol_impl.hxx
index db3ff9f..7a6191f 100644
--- a/svtools/source/table/tablecontrol_impl.hxx
+++ b/svtools/source/table/tablecontrol_impl.hxx
@@ -300,8 +300,8 @@ namespace svt { namespace table
 
         TableDataWindow&        getDataWindow()       { return *m_pDataWindow; }
         const TableDataWindow&  getDataWindow() const { return *m_pDataWindow; }
-        ScrollBar* getHorzScrollbar();
-        ScrollBar* getVertScrollbar();
+        ScrollBar* getHorzScrollbar() { return m_pHScroll; }
+        ScrollBar* getVertScrollbar() { return m_pVScroll; }
 
         Rectangle calcHeaderRect( bool bColHeader );
         Rectangle calcHeaderCellRect( bool bColHeader, sal_Int32 nPos );


More information about the Libreoffice-commits mailing list