[Libreoffice-commits] core.git: compilerplugins/clang connectivity/source dbaccess/source extensions/source include/svl include/svtools include/svx include/test include/vcl lotuswordpro/source svx/source vcl/inc
Noel Grandin
noel at peralex.com
Tue Jun 9 01:08:03 PDT 2015
compilerplugins/clang/store/removevirtuals.cxx | 18 +
compilerplugins/clang/store/unnecessaryvirtual.cxx | 199 +++++++++++++++---
connectivity/source/drivers/file/fanalyzer.cxx | 11
connectivity/source/drivers/file/fcode.cxx | 5
connectivity/source/drivers/file/fcomp.cxx | 2
connectivity/source/inc/file/fanalyzer.hxx | 4
connectivity/source/inc/file/fcode.hxx | 1
dbaccess/source/core/api/querydescriptor.hxx | 2
dbaccess/source/core/dataaccess/commanddefinition.hxx | 22 -
dbaccess/source/core/inc/TableDeco.hxx | 2
dbaccess/source/core/inc/definitioncolumn.hxx | 2
dbaccess/source/ui/dlg/generalpage.hxx | 2
dbaccess/source/ui/dlg/tablespage.hxx | 2
extensions/source/propctrlr/commoncontrol.hxx | 2
include/svl/svdde.hxx | 37 +--
include/svtools/editbrowsebox.hxx | 8
include/svx/fmgridcl.hxx | 2
include/svx/fmgridif.hxx | 4
include/svx/gridctrl.hxx | 22 -
include/test/beans/xpropertyset.hxx | 2
include/vcl/scheduler.hxx | 2
include/vcl/window.hxx | 4
lotuswordpro/source/filter/lwpoleobject.hxx | 2
lotuswordpro/source/filter/lwpparastyle.hxx | 4
svx/source/inc/gridcell.hxx | 2
vcl/inc/sallayout.hxx | 2
26 files changed, 251 insertions(+), 114 deletions(-)
New commits:
commit 81b954718f0cdac6873927e869b3e41f863562e7
Author: Noel Grandin <noel at peralex.com>
Date: Tue Jun 9 08:55:13 2015 +0200
loplugin:unnecessaryvirtuals
Improve the plugin a little.
Create a python script to process the output.
Run it again.
Change-Id: I05c21d8a21c8f4243af739c412fda0a521f9b5f0
diff --git a/compilerplugins/clang/store/removevirtuals.cxx b/compilerplugins/clang/store/removevirtuals.cxx
index c2bf484..18aebb4 100644
--- a/compilerplugins/clang/store/removevirtuals.cxx
+++ b/compilerplugins/clang/store/removevirtuals.cxx
@@ -53,7 +53,7 @@ static size_t getFilesize(const char* filename)
RemoveVirtuals::RemoveVirtuals(InstantiationData const & data): RewritePlugin(data)
{
- static const char sInputFile[] = "/home/noel/libo4/result.txt";
+ static const char sInputFile[] = "/home/noel/libo5/result.txt";
mmapFilesize = getFilesize(sInputFile);
//Open file
mmapFD = open(sInputFile, O_RDONLY, 0);
@@ -120,14 +120,26 @@ bool RemoveVirtuals::VisitCXXMethodDecl( const CXXMethodDecl* functionDecl )
return true;
}
if (functionDecl->isPure()) {
- removeText(functionDecl->getSourceRange());
+ if (!removeText(functionDecl->getSourceRange())) {
+ report(
+ DiagnosticsEngine::Warning,
+ "Could not remove unused pure virtual method",
+ functionDecl->getLocStart())
+ << functionDecl->getSourceRange();
+ }
} else {
std::string aOrigText = rewriter->getRewrittenText(functionDecl->getSourceRange());
size_t iVirtualTokenIndex = aOrigText.find_first_of("virtual ");
if (iVirtualTokenIndex == std::string::npos) {
return true;
}
- replaceText(functionDecl->getSourceRange(), aOrigText.replace(iVirtualTokenIndex, strlen("virtual "), ""));
+ if (!replaceText(functionDecl->getSourceRange(), aOrigText.replace(iVirtualTokenIndex, strlen("virtual "), ""))) {
+ report(
+ DiagnosticsEngine::Warning,
+ "Could not remove virtual qualifier from method",
+ functionDecl->getLocStart())
+ << functionDecl->getSourceRange();
+ }
}
return true;
}
diff --git a/compilerplugins/clang/store/unnecessaryvirtual.cxx b/compilerplugins/clang/store/unnecessaryvirtual.cxx
index 0ead077..53688cb 100644
--- a/compilerplugins/clang/store/unnecessaryvirtual.cxx
+++ b/compilerplugins/clang/store/unnecessaryvirtual.cxx
@@ -10,6 +10,7 @@
#include <cassert>
#include <string>
#include <iostream>
+#include <set>
#include "plugin.hxx"
#include "compat.hxx"
@@ -20,15 +21,14 @@ Then we will post-process the 2 lists and find the set of virtual methods which
The process goes something like this:
$ make check
$ make FORCE_COMPILE_ALL=1 COMPILER_PLUGIN_TOOL='unnecessaryvirtual' check > log.txt
- $ grep 'definition' log.txt | cut -f 2 | sort -u > definition.txt
- $ grep 'overriding' log.txt | cut -f 2 | sort -u > overriding.txt
- $ cat definition.txt overriding.txt | sort | uniq -u > result.txt
- $ echo "\n" >> result.txt
- $ for dir in *; do make FORCE_COMPILE_ALL=1 UPDATE_FILES=$dir COMPILER_PLUGIN_TOOL='removevirtuals' $dir; done
+ $ ./compilerplugins/clang/unnecessaryvirtual.py log.txt > result.txt
+ $ for dir in *; do make FORCE_COMPILE_ALL=1 UPDATE_FILES=$dir COMPILER_PLUGIN_TOOL='removevirtuals' $dir; done
Note that the actual process may involve a fair amount of undoing, hand editing, and general messing around
to get it to work :-)
-Notably templates tend to confuse it into removing stuff that is still needed.
+
+TODO function template instantiations are not handled
+TODO some boost bind stuff appears to confuse it, notably in the xmloff module
*/
namespace {
@@ -41,8 +41,10 @@ public:
virtual void run() override { TraverseDecl(compiler.getASTContext().getTranslationUnitDecl()); }
- bool VisitCXXMethodDecl( const CXXMethodDecl* var );
-
+ bool VisitCXXRecordDecl( const CXXRecordDecl* decl );
+ bool VisitCXXMethodDecl( const CXXMethodDecl* decl );
+ bool VisitCXXConstructExpr( const CXXConstructExpr* expr );
+ void printTemplateInstantiations( const CXXRecordDecl *decl );
};
static std::string niceName(const CXXMethodDecl* functionDecl)
@@ -62,48 +64,189 @@ static std::string niceName(const CXXMethodDecl* functionDecl)
return s;
}
+static bool startsWith(const std::string& s, const char* other)
+{
+ return s.compare(0, strlen(other), other) == 0;
+}
+
+static bool isStandardStuff(const std::string& s)
+{
+ // ignore UNO interface definitions, cannot change those
+ return startsWith(s, "com::sun::star::")
+ // ignore stuff in the C++ stdlib and boost
+ || startsWith(s, "std::") || startsWith(s, "boost::") || startsWith(s, "__gnu_debug::")
+ // can't change our rtl layer
+ || startsWith(s, "rtl::");
+}
+
+void UnnecessaryVirtual::printTemplateInstantiations( const CXXRecordDecl *recordDecl )
+{
+ for(auto functionDecl = recordDecl->method_begin();
+ functionDecl != recordDecl->method_end(); ++functionDecl)
+ {
+ if (!functionDecl->isUserProvided() || !functionDecl->isVirtual()) {
+ continue;
+ }
+ if (isa<CXXDestructorDecl>(*functionDecl)) {
+ continue;
+ }
+ std::string aNiceName = niceName(*functionDecl);
+ if (isStandardStuff(aNiceName)) {
+ continue;
+ }
+ if (functionDecl->size_overridden_methods() == 0) {
+ cout << "definition:\t" << aNiceName << endl;
+ } else {
+ for (auto iter = functionDecl->begin_overridden_methods();
+ iter != functionDecl->end_overridden_methods(); ++iter)
+ {
+ const CXXMethodDecl *pOverriddenMethod = *iter;
+ // we only care about the first level override to establish that a virtual qualifier was useful.
+ if (pOverriddenMethod->isPure() || pOverriddenMethod->size_overridden_methods() == 0) {
+ std::string aOverriddenNiceName = niceName(pOverriddenMethod);
+ if (isStandardStuff(aOverriddenNiceName)) {
+ continue;
+ }
+ cout << "overriding:\t" << aOverriddenNiceName << endl;
+ }
+ }
+ }
+ }
+ for(auto baseSpecifier = recordDecl->bases_begin();
+ baseSpecifier != recordDecl->bases_end(); ++baseSpecifier)
+ {
+ QualType qt = baseSpecifier->getType().getDesugaredType(compiler.getASTContext());
+ if (!qt->isRecordType()) {
+ continue;
+ }
+ const CXXRecordDecl *pSuperclassCXXRecordDecl = qt->getAsCXXRecordDecl();
+ std::string aNiceName = pSuperclassCXXRecordDecl->getQualifiedNameAsString();
+ if (isStandardStuff(aNiceName)) {
+ continue;
+ }
+ printTemplateInstantiations(pSuperclassCXXRecordDecl);
+ }
+}
+
+// I need to check construct expressions to see if we are instantiating any templates
+// which will effectively generate new methods
+bool UnnecessaryVirtual::VisitCXXConstructExpr( const CXXConstructExpr* constructExpr )
+{
+ if (ignoreLocation(constructExpr)) {
+ return true;
+ }
+ const CXXConstructorDecl* pConstructorDecl = constructExpr->getConstructor();
+ const CXXRecordDecl* recordDecl = pConstructorDecl->getParent();
+ printTemplateInstantiations(recordDecl);
+ return true;
+}
+
+// I need to visit class definitions, so I can scan through the classes they extend to check if
+// we have any template instantiations that will create new methods
+bool UnnecessaryVirtual::VisitCXXRecordDecl( const CXXRecordDecl* recordDecl )
+{
+ if (ignoreLocation(recordDecl)) {
+ return true;
+ }
+ if(!recordDecl->hasDefinition()) {
+ return true;
+ }
+ // ignore uninstantiated templates
+ if (recordDecl->getTemplateInstantiationPattern()) {
+ return true;
+ }
+ // ignore stuff that forms part of the stable URE interface
+ if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(
+ recordDecl->getLocation()))) {
+ return true;
+ }
+ for(auto baseSpecifier = recordDecl->bases_begin();
+ baseSpecifier != recordDecl->bases_end(); ++baseSpecifier)
+ {
+ QualType qt = baseSpecifier->getType().getDesugaredType(compiler.getASTContext());
+ if (!qt->isRecordType()) {
+ continue;
+ }
+ const CXXRecordDecl *pSuperclassCXXRecordDecl = qt->getAsCXXRecordDecl();
+ printTemplateInstantiations(pSuperclassCXXRecordDecl);
+ }
+ return true;
+}
+
bool UnnecessaryVirtual::VisitCXXMethodDecl( const CXXMethodDecl* functionDecl )
{
if (ignoreLocation(functionDecl)) {
return true;
}
functionDecl = functionDecl->getCanonicalDecl();
+ // ignore uninstantiated template methods
+ if (functionDecl->getTemplatedKind() != FunctionDecl::TemplatedKind::TK_NonTemplate
+ || functionDecl->getParent()->getDescribedClassTemplate() != nullptr) {
+ return true;
+ }
// ignore stuff that forms part of the stable URE interface
if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(
functionDecl->getNameInfo().getLoc()))) {
return true;
}
- if (!functionDecl->isVirtual()) {
+ if (isStandardStuff(functionDecl->getParent()->getQualifiedNameAsString())) {
return true;
}
- // ignore UNO interface definitions, cannot change those
- static const char cssPrefix[] = "com::sun::star";
- if (functionDecl->getParent()->getQualifiedNameAsString().compare(0, strlen(cssPrefix), cssPrefix) == 0) {
+
+ std::string aNiceName = niceName(functionDecl);
+
+ // for destructors, we need to check if any of the superclass' destructors are virtual
+ if (isa<CXXDestructorDecl>(functionDecl)) {
+ /* TODO I need to check if the base class has any virtual functions, since overriding
+ classes will simply get a compiler-provided virtual destructor by default.
+
+ if (!functionDecl->isVirtual() && !functionDecl->isPure()) {
+ return true;
+ }
+ std::set<std::string> overriddenSet;
+ const CXXRecordDecl *pRecordDecl = functionDecl->getParent();
+ for(auto baseSpecifier = pRecordDecl->bases_begin();
+ baseSpecifier != pRecordDecl->bases_end(); ++baseSpecifier)
+ {
+ if (baseSpecifier->getType()->isRecordType())
+ {
+ const CXXRecordDecl *pSuperclassCXXRecordDecl = baseSpecifier->getType()->getAsCXXRecordDecl();
+ if (pSuperclassCXXRecordDecl->getDestructor())
+ {
+ std::string aOverriddenNiceName = niceName(pSuperclassCXXRecordDecl->getDestructor());
+ overriddenSet.insert(aOverriddenNiceName);
+ }
+ }
+ }
+ if (overriddenSet.empty()) {
+ cout << "definition:\t" << aNiceName << endl;
+ } else {
+ for(std::string s : overriddenSet)
+ cout << "overriding:\t" << s << endl;
+ }*/
return true;
}
- std::string aNiceName = niceName(functionDecl);
- // Ignore virtual destructors for now.
- // I cannot currently detect the case where we are overriding a pure virtual destructor.
- if (dyn_cast<CXXDestructorDecl>(functionDecl)) {
+
+ if (!functionDecl->isVirtual()) {
+ return true;
+ }
+ if (isStandardStuff(aNiceName)) {
return true;
}
if (functionDecl->size_overridden_methods() == 0) {
- // ignore definition of virtual functions in templates
-// if (functionDecl->getTemplatedKind() != FunctionDecl::TK_NonTemplate
-// && functionDecl->getParent()->getDescribedClassTemplate() == nullptr)
-// {
- cout << "definition\t" << aNiceName << endl;
-// }
+ cout << "definition:\t" << aNiceName << endl;
} else {
- for (CXXMethodDecl::method_iterator iter = functionDecl->begin_overridden_methods(); iter != functionDecl->end_overridden_methods(); ++iter) {
+ for (auto iter = functionDecl->begin_overridden_methods();
+ iter != functionDecl->end_overridden_methods(); ++iter)
+ {
const CXXMethodDecl *pOverriddenMethod = *iter;
// we only care about the first level override to establish that a virtual qualifier was useful.
- if (pOverriddenMethod->size_overridden_methods() == 0) {
- // ignore UNO interface definitions, cannot change those
- if (pOverriddenMethod->getParent()->getQualifiedNameAsString().compare(0, strlen(cssPrefix), cssPrefix) != 0) {
- std::string aOverriddenNiceName = niceName(pOverriddenMethod);
- cout << "overriding\t" << aOverriddenNiceName << endl;
+ if (pOverriddenMethod->isPure() || pOverriddenMethod->size_overridden_methods() == 0) {
+ std::string aOverriddenNiceName = niceName(pOverriddenMethod);
+ if (isStandardStuff(aOverriddenNiceName)) {
+ continue;
}
+ cout << "overriding:\t" << aOverriddenNiceName << endl;
}
}
}
diff --git a/connectivity/source/drivers/file/fanalyzer.cxx b/connectivity/source/drivers/file/fanalyzer.cxx
index 00e9f38..3abf3eb 100644
--- a/connectivity/source/drivers/file/fanalyzer.cxx
+++ b/connectivity/source/drivers/file/fanalyzer.cxx
@@ -129,17 +129,6 @@ void OSQLAnalyzer::bindRow(OCodeList& rCodeList,const OValueRefRow& _pRow,OEvalu
OOperandAttr* pAttr = PTR_CAST(OOperandAttr,(*aIter));
if (pAttr)
{
- if (pAttr->isIndexed() && !m_aCompiler->hasORCondition())
- {
- OCode* pCode1 = *(aIter + 1);
- OCode* pCode2 = *(aIter + 2);
-
- if (PTR_CAST(OOperand,pCode1))
- pEvaluateSet = pAttr->preProcess(PTR_CAST(OBoolOperator,pCode2), PTR_CAST(OOperand,pCode1));
- else
- pEvaluateSet = pAttr->preProcess(PTR_CAST(OBoolOperator,pCode1));
- }
-
if (pEvaluateSet)
{
_rEvaluateSetList.push_back(pEvaluateSet);
diff --git a/connectivity/source/drivers/file/fcode.cxx b/connectivity/source/drivers/file/fcode.cxx
index 73a7242..9679391 100644
--- a/connectivity/source/drivers/file/fcode.cxx
+++ b/connectivity/source/drivers/file/fcode.cxx
@@ -102,11 +102,6 @@ void OOperandValue::setValue(const ORowSetValue& _rVal)
m_aValue = _rVal;
}
-bool OOperandAttr::isIndexed() const
-{
- return false;
-}
-
OOperandParam::OOperandParam(OSQLParseNode* pNode, sal_Int32 _nPos)
: OOperandRow(static_cast<sal_uInt16>(_nPos), DataType::VARCHAR) // Standard-Type
{
diff --git a/connectivity/source/drivers/file/fcomp.cxx b/connectivity/source/drivers/file/fcomp.cxx
index 69168cf..b901ff5 100644
--- a/connectivity/source/drivers/file/fcomp.cxx
+++ b/connectivity/source/drivers/file/fcomp.cxx
@@ -451,7 +451,7 @@ OOperand* OPredicateCompiler::execute_Operand(OSQLParseNode* pPredicateNode) thr
{
if (m_orgColumns->getByName(aColumnName) >>= xCol)
{
- pOperand = m_pAnalyzer->createOperandAttr(Reference< XColumnLocate>(m_orgColumns,UNO_QUERY)->findColumn(aColumnName),xCol,m_xIndexes);
+ pOperand = OSQLAnalyzer::createOperandAttr(Reference< XColumnLocate>(m_orgColumns,UNO_QUERY)->findColumn(aColumnName),xCol,m_xIndexes);
}
else
{// Column doesn't exist in the Result-set
diff --git a/connectivity/source/inc/file/fanalyzer.hxx b/connectivity/source/inc/file/fanalyzer.hxx
index dc6d0fe..2f47e6d 100644
--- a/connectivity/source/inc/file/fanalyzer.hxx
+++ b/connectivity/source/inc/file/fanalyzer.hxx
@@ -41,7 +41,7 @@ namespace connectivity
mutable bool m_bHasSelectionCode;
mutable bool m_bSelectionFirstTime;
- void bindRow(OCodeList& rCodeList,const OValueRefRow& _pRow,OEvaluateSetList& _rEvaluateSetList);
+ static void bindRow(OCodeList& rCodeList,const OValueRefRow& _pRow,OEvaluateSetList& _rEvaluateSetList);
public:
OSQLAnalyzer(OConnection* _pConnection);
@@ -76,7 +76,7 @@ namespace connectivity
inline bool evaluateRestriction() { return m_aInterpreter->start(); }
void setSelectionEvaluationResult(OValueRefRow& _pRow,const ::std::vector<sal_Int32>& _rColumnMapping);
void setOrigColumns(const OFileColumns& rCols);
- virtual OOperandAttr* createOperandAttr(sal_Int32 _nPos,
+ static OOperandAttr* createOperandAttr(sal_Int32 _nPos,
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xCol,
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& _xIndexes=NULL);
};
diff --git a/connectivity/source/inc/file/fcode.hxx b/connectivity/source/inc/file/fcode.hxx
index 681a3e4..2c59dfd 100644
--- a/connectivity/source/inc/file/fcode.hxx
+++ b/connectivity/source/inc/file/fcode.hxx
@@ -108,7 +108,6 @@ namespace connectivity
OOperandAttr(sal_uInt16 _nPos,
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xColumn);
- virtual bool isIndexed() const;
virtual OEvaluateSet* preProcess(OBoolOperator* pOp, OOperand* pRight = 0) SAL_OVERRIDE;
TYPEINFO_OVERRIDE();
};
diff --git a/dbaccess/source/core/api/querydescriptor.hxx b/dbaccess/source/core/api/querydescriptor.hxx
index a447818..cbf12e5d 100644
--- a/dbaccess/source/core/api/querydescriptor.hxx
+++ b/dbaccess/source/core/api/querydescriptor.hxx
@@ -100,7 +100,7 @@ protected:
*/
virtual void rebuildColumns( );
- virtual void disposeColumns();
+ void disposeColumns();
// IRefreshableColumns overridables
virtual void refreshColumns() SAL_OVERRIDE;
diff --git a/dbaccess/source/core/dataaccess/commanddefinition.hxx b/dbaccess/source/core/dataaccess/commanddefinition.hxx
index 58640a0..18469f9 100644
--- a/dbaccess/source/core/dataaccess/commanddefinition.hxx
+++ b/dbaccess/source/core/dataaccess/commanddefinition.hxx
@@ -125,17 +125,17 @@ public:
{ OComponentDefinition::removeEventListener(p1); }
// XQueryDefinition properties
- virtual OUString getName() throw( ::com::sun::star::uno::RuntimeException );
- virtual OUString getCommand() throw( ::com::sun::star::uno::RuntimeException );
- virtual void setCommand(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
- virtual bool getEscapeProcessing() throw( ::com::sun::star::uno::RuntimeException );
- virtual void setEscapeProcessing(bool) throw( ::com::sun::star::uno::RuntimeException );
- virtual OUString getUpdateTableName() throw( ::com::sun::star::uno::RuntimeException );
- virtual void setUpdateTableName(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
- virtual OUString getUpdateCatalogName() throw( ::com::sun::star::uno::RuntimeException );
- virtual void setUpdateCatalogName(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
- virtual OUString getUpdateSchemaName() throw( ::com::sun::star::uno::RuntimeException );
- virtual void setUpdateSchemaName(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
+ OUString getName() throw( ::com::sun::star::uno::RuntimeException );
+ OUString getCommand() throw( ::com::sun::star::uno::RuntimeException );
+ void setCommand(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
+ bool getEscapeProcessing() throw( ::com::sun::star::uno::RuntimeException );
+ void setEscapeProcessing(bool) throw( ::com::sun::star::uno::RuntimeException );
+ OUString getUpdateTableName() throw( ::com::sun::star::uno::RuntimeException );
+ void setUpdateTableName(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
+ OUString getUpdateCatalogName() throw( ::com::sun::star::uno::RuntimeException );
+ void setUpdateCatalogName(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
+ OUString getUpdateSchemaName() throw( ::com::sun::star::uno::RuntimeException );
+ void setUpdateSchemaName(const OUString&) throw( ::com::sun::star::uno::RuntimeException );
// OPropertySetHelper
DECLARE_PROPERTYCONTAINER_DEFAULTS( );
diff --git a/dbaccess/source/core/inc/TableDeco.hxx b/dbaccess/source/core/inc/TableDeco.hxx
index 7646103..73b8b2a 100644
--- a/dbaccess/source/core/inc/TableDeco.hxx
+++ b/dbaccess/source/core/inc/TableDeco.hxx
@@ -119,7 +119,7 @@ namespace dbaccess
) throw(::com::sun::star::sdbc::SQLException);
// ODescriptor
- virtual void construct();
+ void construct();
//XInterface
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
diff --git a/dbaccess/source/core/inc/definitioncolumn.hxx b/dbaccess/source/core/inc/definitioncolumn.hxx
index 0fad23f..d615c55 100644
--- a/dbaccess/source/core/inc/definitioncolumn.hxx
+++ b/dbaccess/source/core/inc/definitioncolumn.hxx
@@ -209,7 +209,7 @@ namespace dbaccess
)
throw (::com::sun::star::uno::Exception, std::exception) SAL_OVERRIDE;
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
+ sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
protected:
OUString impl_getPropertyNameFromHandle( const sal_Int32 _nHandle ) const;
diff --git a/dbaccess/source/ui/dlg/generalpage.hxx b/dbaccess/source/ui/dlg/generalpage.hxx
index b30c592..30b012c 100644
--- a/dbaccess/source/ui/dlg/generalpage.hxx
+++ b/dbaccess/source/ui/dlg/generalpage.hxx
@@ -181,7 +181,7 @@ namespace dbaui
::std::vector< OUString>
m_aEmbeddedURLPrefixes;
- virtual OUString getEmbeddedDBName( const SfxItemSet& _rSet );
+ OUString getEmbeddedDBName( const SfxItemSet& _rSet );
void initializeEmbeddedDBList();
protected:
diff --git a/dbaccess/source/ui/dlg/tablespage.hxx b/dbaccess/source/ui/dlg/tablespage.hxx
index a5dc8e8..884ef4a 100644
--- a/dbaccess/source/ui/dlg/tablespage.hxx
+++ b/dbaccess/source/ui/dlg/tablespage.hxx
@@ -58,7 +58,7 @@ namespace dbaui
/** will be called when the controls need to be resized.
*/
- virtual void resizeControls(const Size& _rDiff);
+ void resizeControls(const Size& _rDiff);
OTableSubscriptionPage( vcl::Window* pParent, const SfxItemSet& _rCoreAttrs ,OTableSubscriptionDialog* _pTablesDlg);
virtual ~OTableSubscriptionPage();
diff --git a/extensions/source/propctrlr/commoncontrol.hxx b/extensions/source/propctrlr/commoncontrol.hxx
index adddbb0..758ff19 100644
--- a/extensions/source/propctrlr/commoncontrol.hxx
+++ b/extensions/source/propctrlr/commoncontrol.hxx
@@ -137,7 +137,7 @@ namespace pcr
void SAL_CALL notifyModifiedValue( ) throw (::com::sun::star::uno::RuntimeException);
// XComponent
- virtual void SAL_CALL dispose();
+ void SAL_CALL dispose();
/** (fail-safe) wrapper around calling our context's activateNextControl
*/
diff --git a/include/svl/svdde.hxx b/include/svl/svdde.hxx
index 598aa3d..a616268 100644
--- a/include/svl/svdde.hxx
+++ b/include/svl/svdde.hxx
@@ -89,8 +89,8 @@ public:
class SVL_DLLPUBLIC DdeTransaction
{
public:
- virtual void Data( const DdeData* );
- virtual void Done( bool bDataValid );
+ void Data( const DdeData* );
+ void Done( bool bDataValid );
protected:
DdeConnection& rDde;
DdeData aDdeData;
@@ -146,7 +146,7 @@ public:
void SetNotifyHdl( const Link<>& rLink ) { aNotify = rLink; }
const Link<>& GetNotifyHdl() const { return aNotify; }
- virtual void Notify();
+ void Notify();
};
@@ -288,18 +288,17 @@ class SVL_DLLPUBLIC DdeTopic
SVL_DLLPRIVATE void _Disconnect( sal_IntPtr );
public:
- virtual void Connect( sal_IntPtr );
- virtual void Disconnect( sal_IntPtr );
+ void Connect( sal_IntPtr );
+ void Disconnect( sal_IntPtr );
virtual DdeData* Get(SotClipboardFormatId);
- virtual bool Put( const DdeData* );
- virtual bool Execute( const OUString* );
+ virtual bool Put( const DdeData* );
+ virtual bool Execute( const OUString* );
// Eventually create a new item. return 0 -> Item creation failed
- virtual bool MakeItem( const OUString& rItem );
-
+ virtual bool MakeItem( const OUString& rItem );
// A Warm-/Hot-Link is created. Return true if successful
virtual bool StartAdviseLoop();
- virtual bool StopAdviseLoop();
+ bool StopAdviseLoop();
private:
friend class DdeInternal;
@@ -357,18 +356,18 @@ class SVL_DLLPUBLIC DdeService
friend class DdeInternal;
public:
- virtual bool IsBusy();
- virtual OUString GetHelp();
+ bool IsBusy();
+ OUString GetHelp();
// Eventually creating a new item. return 0 -> Topic creation failed
- virtual bool MakeTopic( const OUString& rItem );
+ bool MakeTopic( const OUString& rItem );
protected:
- virtual OUString Topics();
- virtual OUString Formats();
- virtual OUString SysItems();
- virtual OUString Status();
- virtual OUString SysTopicGet( const OUString& );
- virtual bool SysTopicExecute( const OUString* );
+ OUString Topics();
+ OUString Formats();
+ OUString SysItems();
+ OUString Status();
+ OUString SysTopicGet( const OUString& );
+ bool SysTopicExecute( const OUString* );
const DdeTopic* GetSysTopic() const { return pSysTopic; }
private:
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx
index d2dd6de..d0dec9f 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -540,7 +540,7 @@ namespace svt
// should be used instead of GetFieldRectPixel, 'cause this method here takes into account the borders
Rectangle GetCellRect(long nRow, sal_uInt16 nColId, bool bRelToBrowser = true) const;
virtual sal_uInt32 GetTotalCellWidth(long nRow, sal_uInt16 nColId);
- virtual sal_uInt32 GetAutoColumnWidth(sal_uInt16 nColId);
+ sal_uInt32 GetAutoColumnWidth(sal_uInt16 nColId);
virtual void PaintStatusCell(OutputDevice& rDev, const Rectangle& rRect) const;
virtual void PaintCell(OutputDevice& rDev, const Rectangle& rRect, sal_uInt16 nColId) const = 0;
@@ -570,14 +570,14 @@ namespace svt
virtual CellController* GetController(long nRow, sal_uInt16 nCol);
virtual void InitController(CellControllerRef& rController, long nRow, sal_uInt16 nCol);
- virtual void ResizeController(CellControllerRef& rController, const Rectangle&);
- virtual void ReleaseController(CellControllerRef& pController, long nRow, sal_uInt16 nCol);
+ static void ResizeController(CellControllerRef& rController, const Rectangle&);
+ static void ReleaseController(CellControllerRef& pController, long nRow, sal_uInt16 nCol);
virtual void DoubleClick(const BrowserMouseEvent&) SAL_OVERRIDE;
void ActivateCell() { ActivateCell(GetCurRow(), GetCurColumnId()); }
// retrieve the image for the row status
- virtual Image GetImage(RowStatus) const;
+ Image GetImage(RowStatus) const;
// inserting columns
// if you don't set a width, this will be calculated automatically
diff --git a/include/svx/fmgridcl.hxx b/include/svx/fmgridcl.hxx
index 7bb3568..55e12d0 100644
--- a/include/svx/fmgridcl.hxx
+++ b/include/svx/fmgridcl.hxx
@@ -173,7 +173,7 @@ protected:
// Initialize columns
// a.) only by column description
- virtual void InitColumnsByModels(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& xColumns);
+ void InitColumnsByModels(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& xColumns);
// b.) during alivemode by database fields
virtual void InitColumnsByFields(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& xFields) SAL_OVERRIDE;
diff --git a/include/svx/fmgridif.hxx b/include/svx/fmgridif.hxx
index d752b88..330a26b 100644
--- a/include/svx/fmgridif.hxx
+++ b/include/svx/fmgridif.hxx
@@ -514,8 +514,8 @@ protected:
Instead it may use addColumnListeners and removeColumnListeners which are called in all
the cases.
*/
- virtual void addColumnListeners(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xCol);
- virtual void removeColumnListeners(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xCol);
+ void addColumnListeners(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xCol);
+ void removeColumnListeners(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xCol);
void selectionChanged();
void columnChanged();
diff --git a/include/svx/gridctrl.hxx b/include/svx/gridctrl.hxx
index 677e4c9..a672738 100644
--- a/include/svx/gridctrl.hxx
+++ b/include/svx/gridctrl.hxx
@@ -324,8 +324,8 @@ protected:
virtual bool IsModified() const SAL_OVERRIDE;
virtual sal_uInt16 AppendColumn(const OUString& rName, sal_uInt16 nWidth = 0, sal_uInt16 nPos = HEADERBAR_APPEND, sal_uInt16 nId = (sal_uInt16)-1) SAL_OVERRIDE;
- virtual void RemoveColumn(sal_uInt16 nId);
- virtual DbGridColumn* CreateColumn(sal_uInt16 nId) const;
+ void RemoveColumn(sal_uInt16 nId);
+ DbGridColumn* CreateColumn(sal_uInt16 nId) const;
virtual void ColumnMoved(sal_uInt16 nId) SAL_OVERRIDE;
virtual bool SaveRow() SAL_OVERRIDE;
virtual bool IsTabAllowed(bool bForward) const SAL_OVERRIDE;
@@ -347,12 +347,12 @@ protected:
*/
virtual void PostExecuteRowContextMenu(sal_uInt16 nRow, const PopupMenu& rMenu, sal_uInt16 nExecutionResult);
- virtual void DataSourcePropertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException);
+ void DataSourcePropertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException);
- virtual void FieldValueChanged(sal_uInt16 _nId, const ::com::sun::star::beans::PropertyChangeEvent& _evt);
- virtual void FieldListenerDisposing(sal_uInt16 _nId);
+ void FieldValueChanged(sal_uInt16 _nId, const ::com::sun::star::beans::PropertyChangeEvent& _evt);
+ void FieldListenerDisposing(sal_uInt16 _nId);
- virtual void disposing(sal_uInt16 _nId, const ::com::sun::star::lang::EventObject& _rEvt);
+ void disposing(sal_uInt16 _nId, const ::com::sun::star::lang::EventObject& _rEvt);
// own overridables
/// called when the current row changed
@@ -396,7 +396,7 @@ public:
// the data source
// the options can restrict but not extend the update abilities
- virtual void setDataSource(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& rCursor,
+ void setDataSource(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& rCursor,
sal_uInt16 nOpts = OPT_INSERT | OPT_UPDATE | OPT_DELETE);
virtual void Dispatch(sal_uInt16 nId) SAL_OVERRIDE;
@@ -426,7 +426,7 @@ public:
bool IsDesignMode() const {return m_bDesignMode;}
bool IsOpen() const {return m_pSeekCursor != NULL;}
- virtual void SetFilterMode(bool bMode);
+ void SetFilterMode(bool bMode);
bool IsFilterMode() const {return m_bFilterMode;}
bool IsFilterRow(long nRow) const {return m_bFilterMode && nRow == 0;}
@@ -463,9 +463,9 @@ public:
// is the current line being updated
bool IsUpdating() const {return m_bUpdating;}
- virtual void RowRemoved( long nRow, long nNumRows = 1, bool bDoPaint = true );
- virtual void RowInserted( long nRow, long nNumRows = 1, bool bDoPaint = true, bool bKeepSelection = false );
- virtual void RowModified( long nRow, sal_uInt16 nColId = USHRT_MAX );
+ void RowRemoved( long nRow, long nNumRows = 1, bool bDoPaint = true );
+ void RowInserted( long nRow, long nNumRows = 1, bool bDoPaint = true, bool bKeepSelection = false );
+ void RowModified( long nRow, sal_uInt16 nColId = USHRT_MAX );
void resetCurrentRow();
diff --git a/include/test/beans/xpropertyset.hxx b/include/test/beans/xpropertyset.hxx
index 19f0635..e53cee2 100644
--- a/include/test/beans/xpropertyset.hxx
+++ b/include/test/beans/xpropertyset.hxx
@@ -32,7 +32,7 @@ public:
void testGetPropertyValue();
protected:
- virtual bool isPropertyValueChangeable(const OUString& rName);
+ bool isPropertyValueChangeable(const OUString& rName);
private:
void fillPropsToTest(const css::uno::Reference<css::beans::XPropertySetInfo>& xPropInfo);
diff --git a/include/vcl/scheduler.hxx b/include/vcl/scheduler.hxx
index 5ce31e2..dfa1483 100644
--- a/include/vcl/scheduler.hxx
+++ b/include/vcl/scheduler.hxx
@@ -73,7 +73,7 @@ public:
virtual void Invoke() = 0;
virtual void Start();
- virtual void Stop();
+ void Stop();
bool IsActive() const { return mbActive; }
void SetInActive() { mbActive = false; }
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 0aa057d..a18debc 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -837,7 +837,7 @@ protected:
OutputDevice::DrawGradientWallpaper(nX, nY, nWidth, nHeight, rWallpaper);
}
- virtual void DrawGradientWallpaper(vcl::RenderContext& rRenderContext, long nX, long nY,
+ void DrawGradientWallpaper(vcl::RenderContext& rRenderContext, long nX, long nY,
long nWidth, long nHeight, const Wallpaper& rWallpaper);
virtual void ApplySettings(vcl::RenderContext& rRenderContext);
@@ -863,7 +863,7 @@ public:
virtual void PrePaint(vcl::RenderContext& rRenderContext);
virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect);
virtual void PostPaint(vcl::RenderContext& rRenderContext);
- virtual void Erase(vcl::RenderContext& rRenderContext);
+ void Erase(vcl::RenderContext& rRenderContext);
virtual void Erase() SAL_OVERRIDE
{
diff --git a/lotuswordpro/source/filter/lwpoleobject.hxx b/lotuswordpro/source/filter/lwpoleobject.hxx
index bcbc867..a06dbc9 100644
--- a/lotuswordpro/source/filter/lwpoleobject.hxx
+++ b/lotuswordpro/source/filter/lwpoleobject.hxx
@@ -102,7 +102,7 @@ class LwpGraphicOleObject : public LwpContent
public:
LwpGraphicOleObject(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
virtual void Read() SAL_OVERRIDE;
- virtual void GetGrafScaledSize(double& fWidth, double& fHeight);
+ void GetGrafScaledSize(double& fWidth, double& fHeight);
virtual void GetGrafOrgSize(double& rWidth, double& rHeight);
protected:
LwpObjectID m_pPrevObj;
diff --git a/lotuswordpro/source/filter/lwpparastyle.hxx b/lotuswordpro/source/filter/lwpparastyle.hxx
index 42bcb4a..f1d67b2 100644
--- a/lotuswordpro/source/filter/lwpparastyle.hxx
+++ b/lotuswordpro/source/filter/lwpparastyle.hxx
@@ -82,9 +82,9 @@ public:
virtual ~LwpParaStyle();
- void Read() SAL_OVERRIDE;
+ void Read() SAL_OVERRIDE;
- virtual void Apply(XFParaStyle *pStrm);
+ void Apply(XFParaStyle *pStrm);
// 01/26/2005
static void ApplyParaBorder(XFParaStyle* pParaStyle, LwpParaBorderOverride* pBorder);
static void ApplyBreaks(XFParaStyle* pParaStyle, LwpBreaksOverride* pBreaks);
diff --git a/svx/source/inc/gridcell.hxx b/svx/source/inc/gridcell.hxx
index 7cfeeb1..d2af571 100644
--- a/svx/source/inc/gridcell.hxx
+++ b/svx/source/inc/gridcell.hxx
@@ -1110,7 +1110,7 @@ public:
static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
// painting the filter text
- virtual void PaintCell(OutputDevice& rDev, const Rectangle& rRect);
+ void PaintCell(OutputDevice& rDev, const Rectangle& rRect);
void Update(){m_pCellControl->Update();}
// OComponentHelper
diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx
index 9e82f39..5364eed 100644
--- a/vcl/inc/sallayout.hxx
+++ b/vcl/inc/sallayout.hxx
@@ -345,7 +345,7 @@ public:
// used by upper layers
virtual DeviceCoordinate GetTextWidth() const SAL_OVERRIDE;
- virtual Rectangle GetTextRect() const;
+ Rectangle GetTextRect() const;
virtual DeviceCoordinate FillDXArray( DeviceCoordinate* pDXArray ) const SAL_OVERRIDE;
virtual sal_Int32 GetTextBreak(DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const SAL_OVERRIDE;
virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const SAL_OVERRIDE;
More information about the Libreoffice-commits
mailing list