Kaydet (Commit) 58aea3f3 authored tarafından Noel Grandin's avatar Noel Grandin Kaydeden (comit) Noel Grandin

loplugin:unusedmethods

- improvements to the plugin to find more method calls
- improvements to python script to remove more false+
- fix the FORCE_COMPILE_ALL build flag to include code in
  the $WORKDIR

Change-Id: I4d6015dcb9b9d60c26f0bcee8abad807177a7836
Reviewed-on: https://gerrit.libreoffice.org/19064Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noelgrandin@gmail.com>
üst 3fcbfe10
......@@ -468,11 +468,11 @@ class OffSetAccumulator : public PCodeVisitor< T >
public:
OffSetAccumulator() : m_nNumOp0(0), m_nNumSingleParams(0), m_nNumDoubleParams(0){}
virtual void start( sal_uInt8* /*pStart*/ ){}
virtual void processOpCode0( SbiOpcode /*eOp*/ ){ ++m_nNumOp0; }
virtual void processOpCode1( SbiOpcode /*eOp*/, T /*nOp1*/ ){ ++m_nNumSingleParams; }
virtual void processOpCode2( SbiOpcode /*eOp*/, T /*nOp1*/, T /*nOp2*/ ) { ++m_nNumDoubleParams; }
virtual void end(){}
virtual void start( sal_uInt8* /*pStart*/ ) SAL_OVERRIDE {}
virtual void processOpCode0( SbiOpcode /*eOp*/ ) SAL_OVERRIDE { ++m_nNumOp0; }
virtual void processOpCode1( SbiOpcode /*eOp*/, T /*nOp1*/ ) SAL_OVERRIDE { ++m_nNumSingleParams; }
virtual void processOpCode2( SbiOpcode /*eOp*/, T /*nOp1*/, T /*nOp2*/ ) SAL_OVERRIDE { ++m_nNumDoubleParams; }
virtual void end() SAL_OVERRIDE {}
S offset()
{
T result = 0 ;
......@@ -480,25 +480,24 @@ public:
result = m_nNumOp0 + ( ( sizeof(S) + 1 ) * m_nNumSingleParams ) + ( (( sizeof(S) * 2 )+ 1 ) * m_nNumDoubleParams );
return std::min(static_cast<T>(max), result);
}
virtual bool processParams(){ return false; }
virtual bool processParams() SAL_OVERRIDE { return false; }
};
template < class T, class S >
class BufferTransformer : public PCodeVisitor< T >
{
sal_uInt8* m_pStart;
SbiBuffer m_ConvertedBuf;
public:
BufferTransformer():m_pStart(NULL), m_ConvertedBuf( NULL, 1024 ) {}
virtual void start( sal_uInt8* pStart ){ m_pStart = pStart; }
virtual void processOpCode0( SbiOpcode eOp )
virtual void start( sal_uInt8* pStart ) SAL_OVERRIDE { m_pStart = pStart; }
virtual void processOpCode0( SbiOpcode eOp ) SAL_OVERRIDE
{
m_ConvertedBuf += (sal_uInt8)eOp;
}
virtual void processOpCode1( SbiOpcode eOp, T nOp1 )
virtual void processOpCode1( SbiOpcode eOp, T nOp1 ) SAL_OVERRIDE
{
m_ConvertedBuf += (sal_uInt8)eOp;
switch( eOp )
......@@ -523,7 +522,7 @@ public:
}
m_ConvertedBuf += static_cast<S>(nOp1);
}
virtual void processOpCode2( SbiOpcode eOp, T nOp1, T nOp2 )
virtual void processOpCode2( SbiOpcode eOp, T nOp1, T nOp2 ) SAL_OVERRIDE
{
m_ConvertedBuf += (sal_uInt8)eOp;
if ( eOp == _CASEIS )
......@@ -533,8 +532,8 @@ public:
m_ConvertedBuf += static_cast<S>(nOp2);
}
virtual bool processParams(){ return true; }
virtual void end() {}
virtual bool processParams() SAL_OVERRIDE { return true; }
virtual void end() SAL_OVERRIDE {}
// yeuch, careful here, you can only call
// GetBuffer on the returned SbiBuffer once, also
// you (as the caller) get to own the memory
......
......@@ -138,11 +138,6 @@ extern RTLFUNC(CLEAR_ALLTABS);
extern RTLFUNC(CLEAR_TAB);
extern RTLFUNC(SET_TAB);
extern RTLFUNC(LINEPROP);
extern RTLFUNC(LINE_1);
extern RTLFUNC(LINE_15);
extern RTLFUNC(LINE_2);
// Methoden
extern RTLFUNC(CreateObject);
......
......@@ -727,35 +727,6 @@ RTLFUNC(SET_TAB)
rPar.Get(0)->PutInteger(0);
}
RTLFUNC(LINEPROP)
{
(void)pBasic;
(void)bWrite;
rPar.Get(0)->PutInteger(0);
}
RTLFUNC(LINE_1)
{
(void)pBasic;
(void)bWrite;
rPar.Get(0)->PutInteger(1);
}
RTLFUNC(LINE_15)
{
(void)pBasic;
(void)bWrite;
rPar.Get(0)->PutInteger(2);
}
RTLFUNC(LINE_2)
{
(void)pBasic;
(void)bWrite;
rPar.Get(0)->PutInteger(3);
}
RTLFUNC(TYP_JUMPEDITFLD)
{
(void)pBasic;
......
......@@ -48,7 +48,6 @@ void ImpPutUInt64( SbxValues*, sal_uInt64 );
sal_Int64 ImpDoubleToSalInt64 ( double d );
sal_uInt64 ImpDoubleToSalUInt64( double d );
double ImpSalInt64ToDouble ( sal_Int64 n );
double ImpSalUInt64ToDouble( sal_uInt64 n );
// SBXLNG.CXX
......
......@@ -77,27 +77,6 @@ template< class Interface >
CreateRefClone< Interface >());
}
template< typename Key, class Interface >
void CloneRefPairVector(
const ::std::vector< ::std::pair< Key, Interface > > & rSource,
::std::vector< ::std::pair< Key, Interface > > & rDestination )
{
::std::transform( rSource.begin(), rSource.end(),
::std::back_inserter( rDestination ),
CreateRefWithKeyClone< Key, Interface >());
}
/// clones a map of elements with a UNO-Reference as value
template< typename Key, class Interface >
void CloneRefMap(
const ::std::map< Key, Interface > & rSource,
::std::map< Key, Interface > & rDestination )
{
::std::transform( rSource.begin(), rSource.end(),
::std::inserter( rDestination, rDestination.begin() ),
CreateRefWithKeyClone< const Key, Interface >());
}
/// clones a UNO-sequence of UNO-References
template< class Interface >
void CloneRefSequence(
......
......@@ -174,21 +174,6 @@ private:
Value m_aValueToCompareWith;
};
/** Searches for data in a given map, i.e. not for the key but for the data
pointed to by the keys.
To find a key (value) you can use rMap.find( rValue )
*/
template< class MapType >
inline typename MapType::const_iterator
findValueInMap( const MapType & rMap, const typename MapType::mapped_type & rData )
{
return ::std::find_if( rMap.begin(), rMap.end(),
[&rData]
( const typename MapType::value_type& cp )
{ return rData == cp.second; } );
}
} // namespace CommonFunctors
} // namespace chart
......
......@@ -73,32 +73,6 @@ template< class Container >
return aResult;
}
/** converts a UNO sequence into a standard container. For convenience see the
methods SequenceToVector, etc. below. (In contrast to
SequenceToSTLSequenceContainer this works for all standard containers)
input: uno::Sequence
output: a standard container that has an insert( iterator, key ) method (all
standard containers)
note: for containers implementing the Concept of a Sequence (vector, deque,
list, slist) use SequenceToSTLSequenceContainer for better speed
example:
Sequence< sal_Int32 > aSequence;
::std::set< sal_Int32 > aVector(
ContainerToSequence::SequenceToSTLContainer< ::std::set< sal_Int32 > >( aSequence );
*/
template< class Container >
Container
SequenceToSTLContainer( const ::com::sun::star::uno::Sequence< typename Container::value_type > & rSeq )
{
Container aResult;
::std::copy( rSeq.begin(), rSeq.end(),
::std::inserter< Container >( aResult, aResult.begin()));
return aResult;
}
// concrete container methods for convenience
/** converts a UNO sequence into a standard vector of same value type
......@@ -115,20 +89,6 @@ template< typename T >
return SequenceToSTLSequenceContainer< ::std::vector< T > >( rSeq );
}
/** converts a UNO sequence into a standard set of same value type
example:
Sequence< sal_Int32 > aSequence;
::std::set< sal_Int32 > aVector( ContainerHelper::SequenceToSet( aSequence ));
*/
template< typename T >
::std::set< T >
SequenceToSet( const ::com::sun::star::uno::Sequence< T > & rSeq )
{
return SequenceToSTLContainer< ::std::set< T > >( rSeq );
}
/** converts the keys of a Pair Associative Container into a UNO sequence
example:
......
......@@ -80,12 +80,6 @@ template< class Container >
::std::for_each( rContainer.begin(), rContainer.end(), DisposeFunctor< typename Container::value_type >());
}
template< class Map >
void DisposeAllMapElements( Map & rContainer )
{
::std::for_each( rContainer.begin(), rContainer.end(), DisposeSecondOfPairFunctor< typename Map::value_type >());
}
} // namespace DisposeHelper
} // namespace chart
......
......@@ -137,28 +137,6 @@ void addListenerToAllElements(
impl::addListenerFunctor< typename Container::value_type >( xListener ));
}
template< class Container >
void addListenerToAllMapElements(
const Container & rContainer,
const ::com::sun::star::uno::Reference<
::com::sun::star::lang::XEventListener > & xListener )
{
if( xListener.is())
::std::for_each( rContainer.begin(), rContainer.end(),
impl::addListenerToMappedElementFunctor< typename Container::value_type >( xListener ));
}
template< typename T >
void addListenerToAllSequenceElements(
const ::com::sun::star::uno::Sequence< T > & rSequence,
const ::com::sun::star::uno::Reference<
::com::sun::star::lang::XEventListener > & xListener )
{
if( xListener.is())
::std::for_each( rSequence.getConstArray(), rSequence.getConstArray() + rSequence.getLength(),
impl::addListenerFunctor< T >( xListener ));
}
template< class InterfaceRef >
void removeListener(
const InterfaceRef & xObject,
......@@ -183,28 +161,6 @@ void removeListenerFromAllElements(
impl::removeListenerFunctor< typename Container::value_type >( xListener ));
}
template< class Container >
void removeListenerFromAllMapElements(
const Container & rContainer,
const ::com::sun::star::uno::Reference<
::com::sun::star::lang::XEventListener > & xListener )
{
if( xListener.is())
::std::for_each( rContainer.begin(), rContainer.end(),
impl::removeListenerFromMappedElementFunctor< typename Container::value_type >( xListener ));
}
template< typename T >
void removeListenerFromAllSequenceElements(
const ::com::sun::star::uno::Sequence< T > & rSequence,
const ::com::sun::star::uno::Reference<
::com::sun::star::lang::XEventListener > & xListener )
{
if( xListener.is())
::std::for_each( rSequence.getConstArray(), rSequence.getConstArray() + rSequence.getLength(),
impl::removeListenerFunctor< T >( xListener ));
}
} // namespace EventListenerHelper
} // namespace chart
......
......@@ -39,9 +39,27 @@ TODO deal with calls to superclass/member constructors from other constructors,
namespace {
struct MyFuncInfo
{
std::string returnType;
std::string nameAndParams;
std::string sourceLocation;
bool operator < (const MyFuncInfo &other) const
{
if (returnType < other.returnType)
return true;
else if (returnType == other.returnType)
return nameAndParams < other.nameAndParams;
else
return false;
}
};
// try to limit the voluminous output a little
static std::set<std::string> callSet;
static std::set<std::string> definitionSet;
static std::set<MyFuncInfo> callSet;
static std::set<MyFuncInfo> definitionSet;
class UnusedMethods:
......@@ -57,10 +75,10 @@ public:
// dump all our output in one write call - this is to try and limit IO "crosstalk" between multiple processes
// writing to the same logfile
std::string output;
for (const std::string & s : callSet)
output += "call:\t" + s + "\t\n";
for (const std::string & s : definitionSet)
output += "definition:\t" + s + "\t\n";
for (const MyFuncInfo & s : callSet)
output += "call:\t" + s.returnType + "\t" + s.nameAndParams + "\n";
for (const MyFuncInfo & s : definitionSet)
output += "definition:\t" + s.returnType + "\t" + s.nameAndParams + "\t" + s.sourceLocation + "\n";
ofstream myfile;
myfile.open( SRCDIR "/unusedmethods.log", ios::app | ios::out);
myfile << output;
......@@ -72,9 +90,12 @@ public:
bool VisitDeclRefExpr( const DeclRefExpr* );
bool VisitCXXConstructExpr( const CXXConstructExpr* );
bool VisitVarDecl( const VarDecl* );
private:
void logCallToRootMethods(const FunctionDecl* functionDecl);
MyFuncInfo niceName(const FunctionDecl* functionDecl);
};
static std::string niceName(const FunctionDecl* functionDecl)
MyFuncInfo UnusedMethods::niceName(const FunctionDecl* functionDecl)
{
if (functionDecl->getInstantiatedFromMemberFunction())
functionDecl = functionDecl->getInstantiatedFromMemberFunction();
......@@ -86,31 +107,36 @@ static std::string niceName(const FunctionDecl* functionDecl)
functionDecl = functionDecl->getTemplateInstantiationPattern();
#endif
std::string s =
compat::getReturnType(*functionDecl).getCanonicalType().getAsString()
+ " ";
MyFuncInfo aInfo;
aInfo.returnType = compat::getReturnType(*functionDecl).getCanonicalType().getAsString();
if (isa<CXXMethodDecl>(functionDecl)) {
const CXXRecordDecl* recordDecl = dyn_cast<CXXMethodDecl>(functionDecl)->getParent();
s += recordDecl->getQualifiedNameAsString();
s += "::";
aInfo.nameAndParams += recordDecl->getQualifiedNameAsString();
aInfo.nameAndParams += "::";
}
s += functionDecl->getNameAsString() + "(";
aInfo.nameAndParams += functionDecl->getNameAsString() + "(";
bool bFirst = true;
for (const ParmVarDecl *pParmVarDecl : functionDecl->params()) {
if (bFirst)
bFirst = false;
else
s += ",";
s += pParmVarDecl->getType().getCanonicalType().getAsString();
aInfo.nameAndParams += ",";
aInfo.nameAndParams += pParmVarDecl->getType().getCanonicalType().getAsString();
}
s += ")";
aInfo.nameAndParams += ")";
if (isa<CXXMethodDecl>(functionDecl) && dyn_cast<CXXMethodDecl>(functionDecl)->isConst()) {
s += " const";
aInfo.nameAndParams += " const";
}
return s;
SourceLocation expansionLoc = compiler.getSourceManager().getExpansionLoc( functionDecl->getLocation() );
StringRef name = compiler.getSourceManager().getFilename(expansionLoc);
aInfo.sourceLocation = std::string(name.substr(strlen(SRCDIR)+1)) + ":" + std::to_string(compiler.getSourceManager().getSpellingLineNumber(expansionLoc));
return aInfo;
}
static void logCallToRootMethods(const FunctionDecl* functionDecl)
void UnusedMethods::logCallToRootMethods(const FunctionDecl* functionDecl)
{
functionDecl = functionDecl->getCanonicalDecl();
bool bPrinted = false;
......@@ -127,8 +153,7 @@ static void logCallToRootMethods(const FunctionDecl* functionDecl)
}
if (!bPrinted)
{
std::string s = niceName(functionDecl);
callSet.insert(s);
callSet.insert(niceName(functionDecl));
}
}
......@@ -170,8 +195,36 @@ bool UnusedMethods::VisitCallExpr(CallExpr* expr)
FunctionDecl* calleeFunctionDecl = expr->getDirectCallee();
if (calleeFunctionDecl == nullptr) {
Expr* callee = expr->getCallee()->IgnoreParenImpCasts();
DeclRefExpr* dr = dyn_cast<DeclRefExpr>(callee);
if (dr) {
calleeFunctionDecl = dyn_cast<FunctionDecl>(dr->getDecl());
if (calleeFunctionDecl)
goto gotfunc;
}
/*
// ignore case where we can't determine the target of the call because we're inside a template
if (isa<CXXDependentScopeMemberExpr>(callee))
return true;
if (isa<UnresolvedLookupExpr>(callee))
return true;
if (isa<UnresolvedMemberExpr>(callee))
return true;
if (isa<DependentScopeDeclRefExpr>(callee))
return true;
// ignore this, doesn't really exist (side-effect of template expansion on scalar types)
if (isa<CXXPseudoDestructorExpr>(callee))
return true;
expr->dump();
std::string name = compiler.getSourceManager().getFilename(expansionLoc);
std::string sourceLocation = name + ":" + std::to_string(compiler.getSourceManager().getSpellingLineNumber(expansionLoc));
cout << sourceLocation << endl;
throw "Cant touch this";
*/
return true;
}
gotfunc:
// if we see a call to a function, it may effectively create new code,
// if the function is templated. However, if we are inside a template function,
// calling another function on the same template, the same problem occurs.
......
......@@ -45,8 +45,6 @@ public:
void remove(Path const & path);
void clear() { root_.children.clear(); }
bool empty() const { return root_.children.empty(); }
Node const & getRoot() const { return root_;}
......
......@@ -153,7 +153,7 @@ void writeData_(TempFile &handle, char const * begin, sal_Int32 length) {
}
void writeValueContent_(TempFile &, bool) SAL_DELETED_FUNCTION;
// silence lopluign:salbool
// silence loplugin:salbool
void writeValueContent_(TempFile &handle, sal_Bool value) {
if (value) {
writeData_(handle, RTL_CONSTASCII_STRINGPARAM("true"));
......
......@@ -57,9 +57,6 @@ namespace com { namespace sun { namespace star {
namespace dbaccess
{
class DatabaseDocumentLoader;
// ODatabaseContext
css::uno::Reference< css::uno::XInterface >
ODatabaseContext_CreateInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >&);
typedef ::cppu::WeakComponentImplHelper< css::lang::XServiceInfo
, css::sdb::XDatabaseContext
......
......@@ -63,9 +63,6 @@ namespace dbaui
virtual void implInitControls(const SfxItemSet& _rSet, bool _bSaveValue) SAL_OVERRIDE;
inline void enableConnectionURL() { m_pConnectionURL->SetReadOnly(false); }
inline void disableConnectionURL() { m_pConnectionURL->SetReadOnly(); }
/** changes the connection URL.
<p>The new URL must be of the type which is currently selected, only the parts which do not
affect the type may be changed (compared to the previous URL).</p>
......
......@@ -60,16 +60,6 @@ namespace dbaui
virtual void implInitControls(const SfxItemSet& _rSet, bool _bSaveValue) SAL_OVERRIDE;
virtual bool commitPage( ::svt::WizardTypes::CommitPageReason _eReason ) SAL_OVERRIDE;
inline void enableConnectionURL() { m_pConnectionURL->SetReadOnly(false); }
inline void disableConnectionURL() { m_pConnectionURL->SetReadOnly(); }
/** changes the connection URL.
<p>The new URL must be of the type which is currently selected, only the parts which do not
affect the type may be changed (compared to the previous URL).</p>
*/
void changeConnectionURL( const OUString& _rNewDSN );
OUString getConnectionURL( ) const;
protected:
OConnectionTabPageSetup(vcl::Window* pParent, const OString& _rId, const OUString& _rUIXMLDescription, const SfxItemSet& _rCoreAttrs, sal_uInt16 _nHelpTextResId, sal_uInt16 _nHeaderResId, sal_uInt16 _nUrlResId);
virtual bool checkTestConnection() SAL_OVERRIDE;
......
......@@ -218,7 +218,6 @@ namespace dbaui
static VclPtr<OMySQLIntroPageSetup> CreateMySQLIntroTabPage( vcl::Window* _pParent, const SfxItemSet& _rAttrSet );
ConnectionType getMySQLMode();
void SetClickHdl( const Link<OMySQLIntroPageSetup *, void>& rLink ) { maClickHdl = rLink; }
DECL_LINK(ImplClickHdl, OMySQLIntroPageSetup*);
protected:
virtual bool FillItemSet(SfxItemSet* _rSet) SAL_OVERRIDE;
......
......@@ -92,8 +92,6 @@ namespace dbaui
inline css::uno::Reference< css::uno::XComponentContext > getORB() const { return m_xContext; }
css::uno::Reference< css::sdb::XDatabaseContext > getDatabaseContext() const { return m_xDatabaseContext; }
/** creates a new connection. The caller is responsible to dispose it !!!!
*/
::std::pair< css::uno::Reference< css::sdbc::XConnection >,sal_Bool> createConnection();
......
......@@ -230,11 +230,6 @@ short ORelationDialog::Execute()
return nResult;
}
TTableConnectionData::value_type ORelationDialog::getConnectionData() const
{
return m_pConnData;
}
void ORelationDialog::setValid(bool _bValid)
{
m_pPB_OK->Enable(_bValid);
......
......@@ -56,7 +56,6 @@ protected:
// methods
DECL_LINK( ListDblClickHdl, ListBox * );
DECL_LINK( CloseHdl, PushButton * );
DECL_LINK_TYPED( UserHdl, Button *, void );
void FillUserNames();
......
......@@ -91,7 +91,6 @@ namespace dbaui
private:
void impl_initBooleanSettings();
DECL_LINK(ClickHdl, Button*);
};
// GeneratedValuesPage
......@@ -127,9 +126,6 @@ namespace dbaui
// <method>OGenericAdministrationPage::fillWindows</method>
virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) SAL_OVERRIDE;
private:
DECL_LINK( OnCheckBoxClick, CheckBox * );
};
}
......
......@@ -43,7 +43,6 @@ public:
OTableIndex( const OTableIndex& _rSource) : aIndexFileName(_rSource.aIndexFileName) { }
explicit OTableIndex( const OUString& rFileName ) : aIndexFileName( rFileName ) { }
void SetIndexFileName( const OUString& rFileName ) { aIndexFileName = rFileName; }
OUString GetIndexFileName() const { return aIndexFileName; }
};
......
......@@ -69,9 +69,6 @@ ODbTypeWizDialog::ODbTypeWizDialog(vcl::Window* _pParent
)
:OWizardMachine(_pParent, WizardButtonFlags::NEXT | WizardButtonFlags::PREVIOUS | WizardButtonFlags::FINISH | WizardButtonFlags::CANCEL | WizardButtonFlags::HELP )
,m_pOutSet(NULL)
,m_bResetting(false)
,m_bApplied(false)
,m_bUIEnabled( true )
{
m_pImpl.reset(new ODbDataSourceAdministrationHelper(_rxORB,this,this));
m_pImpl->setDataSourceOrName(_aDataSourceName);
......
......@@ -109,9 +109,6 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(vcl::Window* _pParent
:svt::RoadmapWizard( _pParent, WizardButtonFlags::NEXT | WizardButtonFlags::PREVIOUS | WizardButtonFlags::FINISH | WizardButtonFlags::CANCEL | WizardButtonFlags::HELP )
, m_pOutSet(NULL)
, m_bResetting(false)
, m_bApplied(false)
, m_bUIEnabled( true )
, m_bIsConnectable( false)
, m_sRM_IntroText( ModuleRes( STR_PAGETITLE_INTROPAGE ) )
, m_sRM_dBaseText( ModuleRes( STR_PAGETITLE_DBASE ) )
......
......@@ -56,8 +56,6 @@ namespace dbaui
bool RecalcLine();
void Draw( OutputDevice* pOutDev );
bool CheckHit( const Point& rMousePos ) const;
OUString GetSourceFieldName() const { return m_pData->GetSourceFieldName(); }
OUString GetDestFieldName() const { return m_pData->GetDestFieldName(); }
bool IsValid() const;
......
......@@ -57,8 +57,6 @@ namespace dbaui
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException,css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
OJoinTableView* getTableView() const { return m_pTableView; }
void notifyAccessibleEvent(
const sal_Int16 _nEventId,
const css::uno::Any& _rOldValue,
......
......@@ -63,7 +63,6 @@ namespace dbaui
protected:
// return the Rectangle where I can paint myself
virtual void resizeDocumentView(Rectangle& rRect) SAL_OVERRIDE;
DECL_LINK_TYPED( SplitHdl, Splitter*, void );
};
}
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_JOINDESIGNVIEW_HXX
......
......@@ -35,7 +35,6 @@ namespace dbaui
class ORelationTableConnectionData : public OTableConnectionData
{
friend bool operator==(const ORelationTableConnectionData& lhs, const ORelationTableConnectionData& rhs);
friend bool operator!=(const ORelationTableConnectionData& lhs, const ORelationTableConnectionData& rhs) { return !(lhs == rhs); }
::osl::Mutex m_aMutex;
......@@ -50,7 +49,6 @@ namespace dbaui
protected:
virtual OConnectionLineDataRef CreateLineDataObj() SAL_OVERRIDE;
virtual OConnectionLineDataRef CreateLineDataObj( const OConnectionLineData& rConnLineData ) SAL_OVERRIDE;
ORelationTableConnectionData& operator=( const ORelationTableConnectionData& rConnData );
public:
......