2015-07-02 09:18:31 +02:00
#!/usr/bin/python
import sys
definitionSet = set ( )
callSet = set ( )
# things we need to exclude for reasons like :
# - it's a weird template thingy that confuses the plugin
exclusionSet = set ( [
" double basegfx::DoubleTraits::maxVal() " ,
" double basegfx::DoubleTraits::minVal() " ,
" double basegfx::DoubleTraits::neutral() " ,
" int basegfx::Int32Traits::maxVal() " ,
" int basegfx::Int32Traits::minVal() " ,
" int basegfx::Int32Traits::neutral() " ,
" unsigned long UniqueIndexImpl::Insert(void *) " ,
2015-08-04 16:28:49 +02:00
" class XMLPropertyBackpatcher<short> & XMLTextImportHelper::GetFootnoteBP() " ,
" class XMLPropertyBackpatcher<short> & XMLTextImportHelper::GetSequenceIdBP() " ,
" void XclExpPivotCache::SaveXml(class XclExpXmlStream &) " ,
2015-07-28 08:39:57 +02:00
2015-07-02 09:18:31 +02:00
# used from a yacc lexer
2015-07-28 08:39:57 +02:00
" struct unoidl::detail::SourceProviderExpr unoidl::detail::SourceProviderExpr::Float(double) " ,
" struct unoidl::detail::SourceProviderExpr unoidl::detail::SourceProviderExpr::Int(long) " ,
" struct unoidl::detail::SourceProviderExpr unoidl::detail::SourceProviderExpr::Uint(unsigned long) " ,
2015-08-04 16:28:49 +02:00
" struct unoidl::detail::SourceProviderExpr unoidl::detail::SourceProviderExpr::Bool(_Bool) " ,
2015-07-02 09:18:31 +02:00
" class rtl::OUString unoidl::detail::SourceProviderType::getName() const " ,
" _Bool unoidl::detail::SourceProviderType::equals(const struct unoidl::detail::SourceProviderType &) const " ,
" _Bool unoidl::detail::SourceProviderEntityPad::isPublished() const " ,
" _Bool unoidl::detail::SourceProviderInterfaceTypeEntityPad::checkMemberClashes(int,void *,struct unoidl::detail::SourceProviderScannerData *,const class rtl::OUString &,const class rtl::OUString &,_Bool) const " ,
" _Bool unoidl::detail::SourceProviderInterfaceTypeEntityPad::checkBaseClashes(int,void *,struct unoidl::detail::SourceProviderScannerData *,const class rtl::OUString &,const class rtl::Reference<class unoidl::InterfaceTypeEntity> &,_Bool,_Bool,_Bool,class std::__debug::set<class rtl::OUString, struct std::less<class rtl::OUString>, class std::allocator<class rtl::OUString> > *) const " ,
" _Bool unoidl::detail::SourceProviderInterfaceTypeEntityPad::addDirectBase(int,void *,struct unoidl::detail::SourceProviderScannerData *,const struct unoidl::detail::SourceProviderInterfaceTypeEntityPad::DirectBase &,_Bool) " ,
" _Bool unoidl::detail::SourceProviderInterfaceTypeEntityPad::addBase(int,void *,struct unoidl::detail::SourceProviderScannerData *,const class rtl::OUString &,const class rtl::OUString &,const class rtl::Reference<class unoidl::InterfaceTypeEntity> &,_Bool,_Bool) " ,
" _Bool unoidl::detail::SourceProviderInterfaceTypeEntityPad::addDirectMember(int,void *,struct unoidl::detail::SourceProviderScannerData *,const class rtl::OUString &) " ,
" _Bool unoidl::detail::SourceProviderInterfaceTypeEntityPad::addOptionalBaseMembers(int,void *,struct unoidl::detail::SourceProviderScannerData *,const class rtl::OUString &,const class rtl::Reference<class unoidl::InterfaceTypeEntity> &) " ,
" void unoidl::detail::SourceProviderScannerData::setSource(const void *,unsigned long) " ,
2015-07-28 08:39:57 +02:00
" void Idlc::setParseState(enum ParseState) " ,
" _Bool AstDeclaration::isPredefined() " ,
" void Idlc::setOffset(unsigned int,unsigned int) " ,
" _Bool Idlc::isInMainFile() " ,
" void Idlc::setPublished(_Bool) " ,
" enum ParseState Idlc::getParseState() " ,
" void Idlc::setLineNumber(unsigned int) " ,
" void Idlc::incLineNumber() " ,
" void Idlc::setDocumentation(const class rtl::OString &) " ,
" void Idlc::setInMainfile(_Bool) " ,
" void AstInterface::forwardDefined(const class AstInterface &) " ,
" _Bool AstInterface::hasMandatoryInheritedInterfaces() const " ,
" _Bool AstInterface::usesSingleInheritance() const " ,
" struct AstInterface::DoubleDeclarations AstInterface::checkInheritedInterfaceClashes(const class AstInterface *,_Bool) const " ,
" class std::__debug::vector<struct AstInterface::DoubleMemberDeclaration, class std::allocator<struct AstInterface::DoubleMemberDeclaration> > AstInterface::checkMemberClashes(const class AstDeclaration *) const " ,
" void AstOperation::setExceptions(const class std::__debug::list<class AstDeclaration *, class std::allocator<class AstDeclaration *> > *) " ,
" _Bool AstOperation::isConstructor() const " ,
" _Bool AstService::isSingleInterfaceBasedService() const " ,
" void AstService::setSingleInterfaceBasedService() " ,
" void AstService::setDefaultConstructor(_Bool) " ,
" _Bool AstService::checkLastConstructor() const " ,
" class AstScope * AstStack::nextToTop() " ,
" class AstScope * AstStack::bottom() " ,
" const class AstDeclaration * AstStruct::findTypeParameter(const class rtl::OString &) const " ,
" int AstEnum::getEnumValueCount() " ,
" class AstConstant * AstEnum::checkValue(class AstExpression *) " ,
" void ErrorHandler::flagError(enum ErrorCode,unsigned int) " ,
" void ErrorHandler::error0(enum ErrorCode) " ,
" void ErrorHandler::syntaxError(enum ParseState,int,const char *) " ,
" void ErrorHandler::lookupError(enum ErrorCode,const class rtl::OString &,class AstDeclaration *) " ,
" void ErrorHandler::error3(enum ErrorCode,class AstDeclaration *,class AstDeclaration *,class AstDeclaration *) " ,
" void ErrorHandler::warning0(enum WarningCode,const char *) " ,
" void ErrorHandler::coercionError(class AstExpression *,enum ExprType) " ,
" class AstDeclaration * FeInheritanceHeader::getInherits() " ,
" const class std::__debug::vector<class rtl::OString, class std::allocator<class rtl::OString> > & FeInheritanceHeader::getTypeParameters() const " ,
" const class AstType * FeDeclarator::compose(const class AstDeclaration *) " ,
2015-08-04 16:28:49 +02:00
" const class AstType * AstStructInstance::getTypeTemplate() const " ,
" class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class AstDeclaration *>, class std::__debug::list<class AstDeclaration *, class std::allocator<class AstDeclaration *> > > AstStructInstance::getTypeArgumentsBegin() const " ,
" class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class AstDeclaration *>, class std::__debug::list<class AstDeclaration *, class std::allocator<class AstDeclaration *> > > AstStructInstance::getTypeArgumentsEnd() const " ,
" void AstAttribute::setExceptions(const class rtl::OUString *,const class std::__debug::list<class AstDeclaration *, class std::allocator<class AstDeclaration *> > *,const class rtl::OUString *,const class std::__debug::list<class AstDeclaration *, class std::allocator<class AstDeclaration *> > *) " ,
2015-07-28 08:39:57 +02:00
" const class rtl::OString & FeDeclarator::getName() " ,
" _Bool FeDeclarator::checkType(const class AstDeclaration *) " ,
2015-07-14 14:04:41 +02:00
" enum connectivity::IParseContext::InternationalKeyCode connectivity::IParseContext::getIntlKeyCode(const class rtl::OString &) const " ,
" void connectivity::OSQLParser::error(const char *) " ,
2015-08-04 16:28:49 +02:00
" int connectivity::OSQLParser::SQLlex() " ,
2015-07-23 09:49:57 +02:00
" void connectivity::OSQLParseNode::insert(unsigned int,class connectivity::OSQLParseNode *) " ,
2015-08-04 16:28:49 +02:00
" const class rtl::OUString & connectivity::OSQLParser::getFieldName() const " ,
" short connectivity::OSQLParser::buildLikeRule(class connectivity::OSQLParseNode *,class connectivity::OSQLParseNode *&,const class connectivity::OSQLParseNode *) " ,
" void connectivity::OSQLParser::reduceLiteral(class connectivity::OSQLParseNode *&,_Bool) " ,
" short connectivity::OSQLParser::buildComparsionRule(class connectivity::OSQLParseNode *&,class connectivity::OSQLParseNode *) " ,
" enum connectivity::IParseContext::InternationalKeyCode connectivity::OSQLScanner::getInternationalTokenID(const char *) const " ,
" class rtl::OString connectivity::OSQLScanner::getStatement() const " ,
" void connectivity::OSQLScanner::SQLyyerror(const char *) " ,
" int connectivity::OSQLScanner::GetCurrentPos() const " ,
" int connectivity::OSQLScanner::SQLyygetc() " ,
" void connectivity::OSQLParser::setParseTree(class connectivity::OSQLParseNode *) " ,
" short connectivity::OSQLParser::buildPredicateRule(class connectivity::OSQLParseNode *&,class connectivity::OSQLParseNode *const,class connectivity::OSQLParseNode *,class connectivity::OSQLParseNode *) " ,
" int connectivity::OSQLScanner::SQLlex() " ,
" const struct RSCINST & ObjectStack::Top() " ,
" void ObjectStack::Push(struct RSCINST) " ,
" _Bool RefNode::PutObjNode(class ObjNode *) " ,
" void RscFileInst::SetFileIndex(unsigned long) " ,
" void RscFileInst::SetLineNo(unsigned int) " ,
" class RscDefine * RscFileTab::NewDef(unsigned long,const class rtl::OString &,class RscExpression *,unsigned long) " ,
" class RscDefine * RscFileTab::NewDef(unsigned long,const class rtl::OString &,int,unsigned long) " ,
" class RscTop * RscTypCont::GetRoot() " ,
" class RscTop * RscTypCont::SearchType(unsigned int) " ,
" void RscTypCont::InsertType(class RscTop *) " ,
2015-07-28 08:39:57 +02:00
2015-07-02 09:18:31 +02:00
# TODO track instantiations of template class constructors
" void comphelper::IEventProcessor::release() " ,
2015-07-07 10:12:55 +02:00
" void SotMutexHolder::acquire() " ,
" void SotMutexHolder::release() " ,
2015-07-28 08:39:57 +02:00
2015-07-08 10:25:58 +02:00
# only used by Windows build
2015-07-02 09:18:31 +02:00
" _Bool basegfx::B2ITuple::equalZero() const " ,
" class basegfx::B2DPolyPolygon basegfx::unotools::UnoPolyPolygon::getPolyPolygonUnsafe() const " ,
2015-07-28 08:39:57 +02:00
" void basegfx::B2IRange::expand(const class basegfx::B2IRange &) " ,
2015-07-07 13:58:41 +02:00
" void OpenGLContext::requestSingleBufferedRendering() " ,
" _Bool TabitemValue::isBothAligned() const " ,
" _Bool TabitemValue::isNotAligned() const " ,
" void StyleSettings::SetSpinSize(long) " ,
" void StyleSettings::SetFloatTitleHeight(long) " ,
" void StyleSettings::SetTitleHeight(long) " ,
" void StyleSettings::SetUseFlatBorders(_Bool) " ,
" void StyleSettings::SetUseFlatMenus(_Bool) " ,
" void StyleSettings::SetCursorSize(long) " ,
" _Bool CommandMediaData::GetPassThroughToOS() const " ,
" void Application::AppEvent(const class ApplicationEvent &) " ,
2015-07-08 10:25:58 +02:00
" int PhysicalFontFace::GetWidth() const " ,
" void PhysicalFontFace::SetBitmapSize(int,int) " ,
2015-07-28 08:39:57 +02:00
" class boost::intrusive_ptr<class FontCharMap> FontCharMap::GetDefaultMap(_Bool) " ,
2015-07-08 10:25:58 +02:00
" _Bool SalObject::IsEraseBackgroundEnabled() " ,
2015-07-14 14:04:41 +02:00
" const class rtl::OUString & connectivity::OColumn::getCatalogName() const " ,
" const class rtl::OUString & connectivity::OColumn::getSchemaName() const " ,
" _Bool connectivity::OColumn::isDefinitelyWritable() const " ,
" _Bool connectivity::OColumn::isReadOnly() const " ,
" _Bool connectivity::OColumn::isWritable() const " ,
2015-07-21 10:44:17 +02:00
" _Bool IDocumentLinksAdministration::GetData(const class rtl::OUString &,const class rtl::OUString &,class com::sun::star::uno::Any &) const " ,
" _Bool IDocumentLinksAdministration::SetData(const class rtl::OUString &,const class rtl::OUString &,const class com::sun::star::uno::Any &) " ,
2015-07-22 10:20:03 +02:00
" _Bool ScImportExport::ImportData(const class rtl::OUString &,const class com::sun::star::uno::Any &) " ,
2015-07-23 09:49:57 +02:00
" void* ScannerManager::GetData() " ,
" void ScannerManager::SetData(void *) " ,
2015-07-13 13:31:13 +02:00
# instantiated from templates, not sure why it is not being picked up
2015-07-07 13:58:41 +02:00
" class basegfx::B2DPolygon OutputDevice::PixelToLogic(const class basegfx::B2DPolygon &,const class MapMode &) const " ,
2015-07-17 11:48:35 +02:00
" type-parameter-0-0 * detail::cloner::clone(type-parameter-0-0 *const) " ,
2015-07-17 13:08:16 +02:00
" const class rtl::OUString writerperfect::DocumentHandlerFor::name() " ,
2015-07-08 10:25:58 +02:00
# only used by OSX build
" void StyleSettings::SetHideDisabledMenuItems(_Bool) " ,
2015-07-20 16:03:50 +02:00
# debugging methods
" void oox::drawingml::TextParagraphProperties::dump() const " ,
2015-07-28 08:39:57 +02:00
" void oox::PropertyMap::dumpCode(class com::sun::star::uno::Reference<class com::sun::star::beans::XPropertySet>) " ,
" void oox::PropertyMap::dumpData(class com::sun::star::uno::Reference<class com::sun::star::beans::XPropertySet>) " ,
2015-07-20 16:03:50 +02:00
" class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char> > writerfilter::ooxml::OOXMLPropertySet::toString() " ,
# called from the writerfilter generated code in $WORKDIR, not sure why it is not being picked up
2015-07-21 09:05:31 +02:00
" _Bool writerfilter::ooxml::OOXMLFactory_ns::getElementId(unsigned int,unsigned int,enum writerfilter::ooxml::ResourceType_t &,unsigned int &) " ,
2015-07-20 16:03:50 +02:00
" void writerfilter::ooxml::OOXMLFastContextHandler::setDefaultIntegerValue() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::positivePercentage(const class rtl::OUString &) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::positionOffset(const class rtl::OUString &) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::alignH(const class rtl::OUString &) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::alignV(const class rtl::OUString &) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setDefaultStringValue() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::clearProps() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::sendPropertiesWithId(const unsigned int &) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::cr() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::softHyphen() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::noBreakHyphen() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setDefaultBooleanValue() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::endField() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::propagateCharacterPropertiesAsSet(const unsigned int &) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::tab() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::ftnednref() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::ftnednsep() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::ftnedncont() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::pgNum() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::sendRowProperties() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setLastSectionGroup() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::endTxbxContent() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setDefaultHexValue() " ,
2015-07-21 09:05:31 +02:00
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleComment() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleOLE() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handlePicture() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleHdrFtr() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleBreak() " ,
2015-08-04 16:28:49 +02:00
" int writerfilter::ooxml::OOXMLPropertySetEntryToInteger::getValue() const " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::fieldSeparator() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::startField() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerStream::sendProperty(unsigned int) " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleXNotes() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::propagateTableProperties() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerTextTableRow::endRow() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::propagateCellProperties() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::endSdt() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerTextTableCell::endCell() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::propagateRowProperties() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::sendTableProperties() " ,
" _Bool writerfilter::ooxml::OOXMLPropertySetEntryToBool::getValue() const " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::lockField() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerStream::handleHyperlink() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setLastParagraphInSection() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::startSdt() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setHandle() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::sendTableDepth() const " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::startTxbxContent() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::handleLastParagraphInSection() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerTextTableCell::startCell() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerTextTableRow::startRow() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::propagateCharacterProperties() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleFontRel() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::ignore() " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::resolvePropertySetAttrs() " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerXNote::checkId(class std::shared_ptr<class writerfilter::ooxml::OOXMLValue>) " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerTextTableRow::handleGridBefore(class std::shared_ptr<class writerfilter::ooxml::OOXMLValue>) " ,
" void writerfilter::ooxml::OOXMLFastContextHandlerXNote::checkType(class std::shared_ptr<class writerfilter::ooxml::OOXMLValue>) " ,
" void writerfilter::ooxml::OOXMLFastContextHandler::setXNoteId(class std::shared_ptr<class writerfilter::ooxml::OOXMLValue>) " ,
2015-07-21 10:44:17 +02:00
# deep template magic in SW
" Ring<value_type> * sw::Ring::Ring_node_traits::get_next(const Ring<value_type> *) " ,
" Ring<value_type> * sw::Ring::Ring_node_traits::get_previous(const Ring<value_type> *) " ,
" void sw::Ring::Ring_node_traits::set_next(Ring<value_type> *,Ring<value_type> *) " ,
" void sw::Ring::Ring_node_traits::set_previous(Ring<value_type> *,Ring<value_type> *) " ,
# I need to teach the plugin that for loops with range expressions call begin() and end()
" class __gnu_debug::_Safe_iterator<class __gnu_cxx::__normal_iterator<class SwAnchoredObject *const *, class std::__cxx1998::vector<class SwAnchoredObject *, class std::allocator<class SwAnchoredObject *> > >, class std::__debug::vector<class SwAnchoredObject *, class std::allocator<class SwAnchoredObject *> > > SwSortedObjs::begin() const " ,
" class __gnu_debug::_Safe_iterator<class __gnu_cxx::__normal_iterator<class SwAnchoredObject *const *, class std::__cxx1998::vector<class SwAnchoredObject *, class std::allocator<class SwAnchoredObject *> > >, class std::__debug::vector<class SwAnchoredObject *, class std::allocator<class SwAnchoredObject *> > > SwSortedObjs::end() const " ,
2015-07-02 09:18:31 +02:00
] )
2015-07-06 10:44:18 +02:00
# The parsing here is designed to also grab output which is mixed into the output from gbuild.
# I have not yet found a way of suppressing the gbuild output.
2015-07-02 09:18:31 +02:00
with open ( sys . argv [ 1 ] ) as txt :
for line in txt :
2015-07-06 10:44:18 +02:00
if line . find ( " definition: \t " ) != - 1 :
idx1 = line . find ( " definition: \t " )
idx2 = line . find ( " \t " , idx1 + 12 )
clazzName = line [ idx1 + 12 : idx2 ]
2015-07-02 09:18:31 +02:00
definitionSet . add ( clazzName )
2015-07-06 10:44:18 +02:00
elif line . find ( " call: \t " ) != - 1 :
idx1 = line . find ( " call: \t " )
idx2 = line . find ( " \t " , idx1 + 6 )
clazzName = line [ idx1 + 6 : idx2 ]
2015-07-02 09:18:31 +02:00
callSet . add ( clazzName )
for clazz in sorted ( definitionSet - callSet - exclusionSet ) :
# ignore operators, they are normally called from inside STL code
if ( clazz . find ( " ::operator " ) != - 1 ) :
continue
# ignore the custom RTTI stuff
if ( ( clazz . find ( " ::CreateType() " ) != - 1 )
or ( clazz . find ( " ::IsA( " ) != - 1 )
or ( clazz . find ( " ::Type() " ) != - 1 ) ) :
continue
# if this method is const, and there is a non-const variant of it, and the non-const variant is in use, then leave it alone
2015-07-17 13:08:16 +02:00
if ( clazz . startswith ( " const " ) and clazz . endswith ( " const " ) ) :
2015-07-17 15:50:48 +02:00
clazz2 = clazz [ 6 : len ( clazz ) - 6 ]
2015-07-17 13:08:16 +02:00
if ( clazz2 in callSet ) :
continue
elif ( clazz . endswith ( " const " ) ) :
2015-07-17 15:50:48 +02:00
clazz2 = clazz [ : len ( clazz ) - 6 ] # strip off " const"
2015-07-17 13:08:16 +02:00
if ( clazz2 in callSet ) :
continue
if ( clazz . endswith ( " const " ) and clazz . find ( " ::iterator " ) != - 1 ) :
2015-07-17 15:50:48 +02:00
clazz2 = clazz [ : len ( clazz ) - 6 ] # strip off " const"
clazz2 = clazz2 . replace ( " ::const_iterator " , " ::iterator " )
2015-07-17 13:08:16 +02:00
if ( clazz2 in callSet ) :
continue
2015-07-02 09:18:31 +02:00
# if this method is non-const, and there is a const variant of it, and the const variant is in use, then leave it alone
2015-07-17 13:08:16 +02:00
if ( ( not clazz . endswith ( " const " ) ) and ( " const " + clazz + " const " ) in callSet ) :
2015-07-02 09:18:31 +02:00
continue
2015-07-17 13:08:16 +02:00
if ( ( not clazz . endswith ( " const " ) ) and clazz . find ( " ::iterator " ) != - 1 ) :
clazz2 = clazz . replace ( " ::iterator " , " ::const_iterator " ) + " const "
if ( clazz2 in callSet ) :
continue
2015-08-04 16:28:49 +02:00
# There is lots of macro magic going on in SRCDIR/include/sax/fshelper.hxx that should be using C++11 varag templates
2015-07-02 09:18:31 +02:00
if clazz . startswith ( " void sax_fastparser::FastSerializerHelper:: " ) :
continue
# used by Windows build
2015-07-17 13:08:16 +02:00
if ( clazz . find ( " DdeTopic:: " ) != - 1
or clazz . find ( " DdeData:: " ) != - 1
or clazz . find ( " DdeService:: " ) != - 1
or clazz . find ( " DdeTransaction:: " ) != - 1
or clazz . find ( " DdeConnection:: " ) != - 1
or clazz . find ( " DdeLink:: " ) != - 1
or clazz . find ( " DdeItem:: " ) != - 1
or clazz . find ( " DdeGetPutItem:: " ) != - 1 ) :
2015-07-02 09:18:31 +02:00
continue
2015-07-17 15:50:48 +02:00
# the include/tools/rtti.hxx stuff
if ( clazz . find ( " ::StaticType() " ) != - 1
or clazz . find ( " ::IsOf(void *(*)(void)) " ) != - 1 ) :
continue
2015-08-04 16:28:49 +02:00
# too much template magic here for my plugin
if ( clazz . find ( " cairocanvas:: " ) != - 1
or clazz . find ( " canvas:: " ) != - 1
or clazz . find ( " oglcanvas:: " ) != - 1
or clazz . find ( " vclcanvas:: " ) != - 1 ) :
continue
2015-07-02 09:18:31 +02:00
print clazz
2015-08-04 16:28:49 +02:00
2015-07-02 09:18:31 +02:00
# add an empty line at the end to make it easier for the unusedmethodsremove plugin to mmap() the output file
print