summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-10-17 11:05:43 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-10-17 16:51:07 +0200
commite8475b6343af23bc1ac2d722afd8df4d7615a7a8 (patch)
tree1006fc4d830ed0212303d4c4fce2a886aa3830ae /compilerplugins
parentda50f3e15e38474a51361bdddbc0951dec5674bf (diff)
loplugin:virtualdead look for virtual methods where a param is unused
Change-Id: Ibadc2aa79a52082db16eff44c89ab30938838dd8 Reviewed-on: https://gerrit.libreoffice.org/80935 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/virtualdead.cxx31
-rwxr-xr-xcompilerplugins/clang/virtualdead.py76
-rw-r--r--compilerplugins/clang/virtualdead.results29
-rw-r--r--compilerplugins/clang/virtualdead.unusedparams.results450
4 files changed, 543 insertions, 43 deletions
diff --git a/compilerplugins/clang/virtualdead.cxx b/compilerplugins/clang/virtualdead.cxx
index c2d804067d7b..330085b18781 100644
--- a/compilerplugins/clang/virtualdead.cxx
+++ b/compilerplugins/clang/virtualdead.cxx
@@ -43,9 +43,19 @@ bool operator<(const MyFuncInfo& lhs, const MyFuncInfo& rhs)
{
return std::tie(lhs.name, lhs.returnValue) < std::tie(rhs.name, rhs.returnValue);
}
+struct MyParamInfo
+{
+ std::string funcName;
+ std::string paramBitField;
+};
+bool operator<(const MyParamInfo& lhs, const MyParamInfo& rhs)
+{
+ return std::tie(lhs.funcName, lhs.paramBitField) < std::tie(rhs.funcName, rhs.paramBitField);
+}
// try to limit the voluminous output a little
static std::set<MyFuncInfo> definitionSet;
+static std::set<MyParamInfo> paramUsedSet;
class VirtualDead : public RecursiveASTVisitor<VirtualDead>, public loplugin::Plugin
{
@@ -64,6 +74,8 @@ public:
std::string output;
for (const MyFuncInfo& s : definitionSet)
output += "virtual:\t" + s.name + "\t" + s.sourceLocation + "\t" + s.returnValue + "\n";
+ for (const MyParamInfo& s : paramUsedSet)
+ output += "param:\t" + s.funcName + "\t" + s.paramBitField + "\n";
std::ofstream myfile;
myfile.open(WORKDIR "/loplugin.virtualdead.log", std::ios::app | std::ios::out);
myfile << output;
@@ -77,7 +89,8 @@ public:
private:
std::string getCallValue(const Expr* arg);
std::string toString(SourceLocation loc);
- void markSuperclassMethods(const CXXMethodDecl* methodDecl, std::string returnValue);
+ void markSuperclassMethods(const CXXMethodDecl* methodDecl, const std::string& returnValue,
+ const std::string& paramBitField);
};
std::string niceName(const CXXMethodDecl* cxxMethodDecl)
@@ -142,18 +155,28 @@ bool VirtualDead::VisitCXXMethodDecl(const CXXMethodDecl* methodDecl)
else
returnValue = "empty";
- markSuperclassMethods(methodDecl, returnValue);
+ std::string paramBitfield;
+ for (auto it = methodDecl->param_begin(); it != methodDecl->param_end(); ++it)
+ {
+ auto param = *it;
+ paramBitfield += param->getName().empty() ? "0" : "1";
+ }
+
+ markSuperclassMethods(methodDecl, returnValue, paramBitfield);
return true;
}
-void VirtualDead::markSuperclassMethods(const CXXMethodDecl* methodDecl, std::string returnValue)
+void VirtualDead::markSuperclassMethods(const CXXMethodDecl* methodDecl,
+ const std::string& returnValue,
+ std::string const& paramBitField)
{
if (methodDecl->size_overridden_methods() == 0)
{
std::string aNiceName = niceName(methodDecl);
definitionSet.insert(
{ aNiceName, toString(methodDecl->getCanonicalDecl()->getLocation()), returnValue });
+ paramUsedSet.insert({ aNiceName, paramBitField });
return;
}
@@ -161,7 +184,7 @@ void VirtualDead::markSuperclassMethods(const CXXMethodDecl* methodDecl, std::st
iter != methodDecl->end_overridden_methods(); ++iter)
{
const CXXMethodDecl* overriddenMethod = *iter;
- markSuperclassMethods(overriddenMethod, returnValue);
+ markSuperclassMethods(overriddenMethod, returnValue, paramBitField);
}
}
diff --git a/compilerplugins/clang/virtualdead.py b/compilerplugins/clang/virtualdead.py
index 9f5ab39663d0..eccfbd4f76e3 100755
--- a/compilerplugins/clang/virtualdead.py
+++ b/compilerplugins/clang/virtualdead.py
@@ -5,6 +5,8 @@ import re
import io
callDict = dict() # callInfo tuple -> callValue
+definitionToSourceLocationMap = dict()
+paramSet = set() # paraminfo tuple
# clang does not always use exactly the same numbers in the type-parameter vars it generates
# so I need to substitute them to ensure we can match correctly.
@@ -17,13 +19,22 @@ with io.open("workdir/loplugin.virtualdead.log", "rb", buffering=1024*1024) as t
for line in txt:
try:
tokens = line.strip().split("\t")
- nameAndParams = normalizeTypeParams(tokens[1])
- sourceLocation = tokens[2]
- returnValue = tokens[3]
- callInfo = (nameAndParams, sourceLocation)
- if not callInfo in callDict:
- callDict[callInfo] = set()
- callDict[callInfo].add(returnValue)
+ if tokens[0] == "virtual:":
+ nameAndParams = normalizeTypeParams(tokens[1])
+ sourceLocation = tokens[2]
+ returnValue = tokens[3]
+ callInfo = (nameAndParams, sourceLocation)
+ if not callInfo in callDict:
+ callDict[callInfo] = set()
+ callDict[callInfo].add(returnValue)
+ definitionToSourceLocationMap[nameAndParams] = sourceLocation
+ elif tokens[0] == "param:":
+ name = normalizeTypeParams(tokens[1])
+ if len(tokens)>2:
+ bitfield = tokens[2]
+ paramSet.add((name,bitfield))
+ else:
+ print( "unknown line: " + line)
except IndexError:
print "problem with line " + line.strip()
raise
@@ -44,18 +55,56 @@ for callInfo, callValues in callDict.iteritems():
continue
if "pure" in callValue:
continue
- sourceLoc = callInfo[1]
- if sourceLoc.startswith("workdir/"):
- continue
+ srcloc = callInfo[1]
+ if srcloc.startswith("workdir/"): continue
+ # ignore Qt stuff
+ if srcloc.startswith("Gui/"): continue
+ if srcloc.startswith("Widgets/"): continue
+ if srcloc.startswith("Core/"): continue
functionSig = callInfo[0]
- tmp1list.append((sourceLoc, functionSig, callValue))
+ tmp1list.append((srcloc, functionSig, callValue))
+def merge_bitfield(a, b):
+ if len(a) == 0: return b
+ ret = ""
+ for i, c in enumerate(b):
+ if c == "1" or a[i] == "1":
+ ret += "1"
+ else:
+ ret += "0"
+ return ret;
+tmp2dict = dict()
+tmp2list = list()
+for paramInfo in paramSet:
+ name = paramInfo[0]
+ bitfield = paramInfo[1]
+ if re.match( r"\w+ com::", name): continue
+ if re.match( r"\w+ ooo::vba::", name): continue
+ if re.match( r"\w+ orcus::", name): continue
+ if re.match( r"\w+ std::", name): continue
+ if not name in tmp2dict:
+ tmp2dict[name] = bitfield
+ else:
+ tmp2dict[name] = merge_bitfield(tmp2dict[name], bitfield)
+for name, bitfield in tmp2dict.iteritems():
+ srcloc = definitionToSourceLocationMap[name]
+ # ignore Qt stuff
+ if srcloc.startswith("Gui/"): continue
+ if srcloc.startswith("Widgets/"): continue
+ if srcloc.startswith("Core/"): continue
+ # ignore external stuff
+ if srcloc.startswith("workdir/"): continue
+ # referenced by generated code in workdir/
+ if srcloc.startswith("writerfilter/source/ooxml/OOXMLFactory.hxx"): continue
+ if "0" in bitfield:
+ tmp2list.append((srcloc, name, bitfield))
# sort results by filename:lineno
def natural_sort_key(s, _nsre=re.compile('([0-9]+)')):
return [int(text) if text.isdigit() else text.lower()
for text in re.split(_nsre, s)]
tmp1list.sort(key=lambda v: natural_sort_key(v[0]))
+tmp2list.sort(key=lambda v: natural_sort_key(v[0]))
# print out the results
with open("compilerplugins/clang/virtualdead.results", "wt") as f:
@@ -63,3 +112,8 @@ with open("compilerplugins/clang/virtualdead.results", "wt") as f:
f.write(v[0] + "\n")
f.write(" " + v[1] + "\n")
f.write(" " + v[2] + "\n")
+with open("compilerplugins/clang/virtualdead.unusedparams.results", "wt") as f:
+ for v in tmp2list:
+ f.write(v[0] + "\n")
+ f.write(" " + v[1] + "\n")
+ f.write(" " + v[2] + "\n")
diff --git a/compilerplugins/clang/virtualdead.results b/compilerplugins/clang/virtualdead.results
index 1e8d8a886cad..87e6431675e0 100644
--- a/compilerplugins/clang/virtualdead.results
+++ b/compilerplugins/clang/virtualdead.results
@@ -10,27 +10,6 @@ basic/source/comp/codegen.cxx:526
desktop/source/deployment/registry/inc/dp_backenddb.hxx:119
class rtl::OUString dp_registry::backend::BackendDb::getDbNSName()
"http://openoffi
-Gui/qaccessible.h:465
- class QObject * QAccessibleInterface::object()const
- 0
-Gui/qaccessible.h:466
- class QWindow * QAccessibleInterface::window()const
- 0
-Gui/qaccessible.h:478
- int QAccessibleInterface::indexOfChild(const class QAccessibleInterface *,)const
- 0
-Gui/qaccessible.h:482
- void QAccessibleInterface::setText(enum QAccessible::Text,const class QString &,)
- empty
-Gui/qaccessible.h:612
- _Bool QAccessibleTableInterface::isColumnSelected(int,)const
- 1
-Gui/qaccessible.h:613
- _Bool QAccessibleTableInterface::isRowSelected(int,)const
- 1
-Gui/qaccessible.h:619
- void QAccessibleTableInterface::modelChange(class QAccessibleTableModelChangeEvent *,)
- empty
include/basegfx/utils/unopolypolygon.hxx:97
void basegfx::unotools::UnoPolyPolygon::modifying()const
empty
@@ -55,9 +34,6 @@ include/canvas/base/graphicdevicebase.hxx:319
include/connectivity/sdbcx/IRefreshable.hxx:31
void connectivity::sdbcx::IRefreshableGroups::refreshGroups()
empty
-include/dbaccess/ToolBoxHelper.hxx:56
- void dbaui::OToolBoxHelper::setImageList(short,)
- empty
include/filter/msfilter/msdffimp.hxx:546
_Bool SvxMSDffManager::ShapeHasText(unsigned long,unsigned long,)const
1
@@ -82,7 +58,7 @@ include/svtools/unoevent.hxx:199
include/test/text/xtextcontent.hxx:29
_Bool apitest::XTextContent::isAttachSupported()
1
-include/ucbhelper/resultset.hxx:425
+include/ucbhelper/resultset.hxx:411
void ucbhelper::ResultSetDataSupplier::close()
empty
include/unotools/desktopterminationobserver.hxx:35
@@ -91,9 +67,6 @@ include/unotools/desktopterminationobserver.hxx:35
include/vbahelper/vbahelperinterface.hxx:77
int InheritedHelperInterfaceImpl::getCreator()
1400204879
-include/vcl/tabpage.hxx:51
- void TabPage::DeactivatePage()
- empty
sc/source/core/opencl/formulagroupcl.cxx:1059
void sc::opencl::DynamicKernelSlidingArgument::GenSlidingWindowFunction(class std::__cxx11::basic_stringstream<char> &,)
empty
diff --git a/compilerplugins/clang/virtualdead.unusedparams.results b/compilerplugins/clang/virtualdead.unusedparams.results
new file mode 100644
index 000000000000..4a5fe58aa00c
--- /dev/null
+++ b/compilerplugins/clang/virtualdead.unusedparams.results
@@ -0,0 +1,450 @@
+basctl/source/inc/doceventnotifier.hxx:42
+ void basctl::DocumentEventListener::onDocumentCreated(const class basctl::ScriptDocument &,)
+ 0
+basctl/source/inc/doceventnotifier.hxx:43
+ void basctl::DocumentEventListener::onDocumentOpened(const class basctl::ScriptDocument &,)
+ 0
+basctl/source/inc/doceventnotifier.hxx:44
+ void basctl::DocumentEventListener::onDocumentSave(const class basctl::ScriptDocument &,)
+ 0
+basctl/source/inc/doceventnotifier.hxx:45
+ void basctl::DocumentEventListener::onDocumentSaveDone(const class basctl::ScriptDocument &,)
+ 0
+basctl/source/inc/doceventnotifier.hxx:46
+ void basctl::DocumentEventListener::onDocumentSaveAs(const class basctl::ScriptDocument &,)
+ 0
+basctl/source/inc/doceventnotifier.hxx:47
+ void basctl::DocumentEventListener::onDocumentSaveAsDone(const class basctl::ScriptDocument &,)
+ 0
+basctl/source/inc/doceventnotifier.hxx:49
+ void basctl::DocumentEventListener::onDocumentTitleChanged(const class basctl::ScriptDocument &,)
+ 0
+basic/source/comp/codegen.cxx:464
+ void OffSetAccumulator::start(const unsigned char *,)
+ 0
+basic/source/comp/codegen.cxx:465
+ void OffSetAccumulator::processOpCode0(enum SbiOpcode,)
+ 0
+basic/source/comp/codegen.cxx:466
+ void OffSetAccumulator::processOpCode1(enum SbiOpcode,type-parameter-?-?,)
+ 00
+basic/source/comp/codegen.cxx:467
+ void OffSetAccumulator::processOpCode2(enum SbiOpcode,type-parameter-?-?,type-parameter-?-?,)
+ 000
+chart2/source/controller/dialogs/ChangingResource.hxx:30
+ void chart::ResourceChangeListener::stateChanged(class chart::ChangingResource *,)
+ 0
+chart2/source/controller/dialogs/ChartTypeDialogController.hxx:105
+ void chart::ChartTypeDialogController::fillExtraControls(const class chart::ChartTypeParameter &,const class com::sun::star::uno::Reference<class com::sun::star::chart2::XChartDocument> &,const class com::sun::star::uno::Reference<class com::sun::star::beans::XPropertySet> &,)const
+ 011
+dbaccess/source/core/api/CacheSet.hxx:174
+ _Bool dbaccess::OCacheSet::previous_checked(_Bool,)
+ 0
+dbaccess/source/core/api/CacheSet.hxx:175
+ _Bool dbaccess::OCacheSet::absolute_checked(int,_Bool,)
+ 10
+dbaccess/source/core/api/CacheSet.hxx:176
+ _Bool dbaccess::OCacheSet::last_checked(_Bool,)
+ 0
+dbaccess/source/core/inc/containerapprove.hxx:53
+ void dbaccess::IContainerApprove::approveElement(const class rtl::OUString &,const class com::sun::star::uno::Reference<class com::sun::star::uno::XInterface> &,)
+ 10
+dbaccess/source/ui/inc/callbacks.hxx:53
+ _Bool dbaui::IControlActionListener::requestDrag(signed char,const class Point &,)
+ 01
+dbaccess/source/ui/inc/TableDesignControl.hxx:68
+ _Bool dbaui::OTableRowView::IsPrimaryKeyAllowed(long,)
+ 0
+dbaccess/source/ui/inc/TableDesignControl.hxx:70
+ _Bool dbaui::OTableRowView::IsDeleteAllowed(long,)
+ 0
+desktop/source/deployment/registry/inc/dp_backend.h:84
+ void dp_registry::backend::Package::processPackage_(class osl::ResettableGuard<class osl::Mutex> &,_Bool,_Bool,const class rtl::Reference<class dp_misc::AbortChannel> &,const class com::sun::star::uno::Reference<class com::sun::star::ucb::XCommandEnvironment> &,)
+ 01111
+extensions/source/bibliography/loadlisteneradapter.hxx:110
+ void bib::OLoadListener::_unloading(const struct com::sun::star::lang::EventObject &,)
+ 0
+extensions/source/bibliography/loadlisteneradapter.hxx:111
+ void bib::OLoadListener::_reloading(const struct com::sun::star::lang::EventObject &,)
+ 0
+forms/source/richtext/textattributelistener.hxx:32
+ void frm::ITextAttributeListener::onAttributeStateChanged(int,const struct frm::AttributeState &,)
+ 10
+forms/source/richtext/textattributelistener.hxx:44
+ void frm::ITextSelectionListener::onSelectionChanged(const struct ESelection &,)
+ 0
+fpicker/source/office/fpdialogbase.hxx:106
+ void SvtFileDialog_Base::setImage(short,const class com::sun::star::uno::Any &,)
+ 01
+include/canvas/base/bufferedgraphicdevicebase.hxx:230
+ void canvas::BufferedGraphicDeviceBase::windowShown(const struct com::sun::star::lang::EventObject &,)
+ 0
+include/canvas/base/bufferedgraphicdevicebase.hxx:237
+ void canvas::BufferedGraphicDeviceBase::windowHidden(const struct com::sun::star::lang::EventObject &,)
+ 0
+include/canvas/base/graphicdevicebase.hxx:240
+ unsigned char canvas::GraphicDeviceBase::enterFullScreenMode(unsigned char,)
+ 0
+include/canvas/base/graphicdevicebase.hxx:306
+ void canvas::GraphicDeviceBase::removePropertyChangeListener(const class rtl::OUString &,const class com::sun::star::uno::Reference<class com::sun::star::beans::XPropertyChangeListener> &,)
+ 00
+include/canvas/base/graphicdevicebase.hxx:319
+ void canvas::GraphicDeviceBase::removeVetoableChangeListener(const class rtl::OUString &,const class com::sun::star::uno::Reference<class com::sun::star::beans::XVetoableChangeListener> &,)
+ 00
+include/canvas/base/integerbitmapbase.hxx:59
+ void canvas::IntegerBitmapBase::setData(const class com::sun::star::uno::Sequence<signed char> &,const struct com::sun::star::rendering::IntegerBitmapLayout &,const struct com::sun::star::geometry::IntegerRectangle2D &,)
+ 011
+include/canvas/base/integerbitmapbase.hxx:73
+ void canvas::IntegerBitmapBase::setPixel(const class com::sun::star::uno::Sequence<signed char> &,const struct com::sun::star::rendering::IntegerBitmapLayout &,const struct com::sun::star::geometry::IntegerPoint2D &,)
+ 011
+include/cppuhelper/propshlp.hxx:326
+ void cppu::IEventNotificationHook::fireEvents(int *,int,unsigned char,_Bool,)
+ 0111
+include/drawinglayer/primitive2d/textbreakuphelper.hxx:61
+ _Bool drawinglayer::primitive2d::TextBreakupHelper::allowChange(unsigned int,class basegfx::B2DHomMatrix &,unsigned int,unsigned int,)
+ 0111
+include/editeng/editeng.hxx:475
+ void EditEngine::PaintingFirstLine(int,const class Point &,long,const class Point &,short,class OutputDevice *,)
+ 110111
+include/editeng/editeng.hxx:478
+ void EditEngine::ParagraphConnected(int,int,)
+ 01
+include/editeng/editeng.hxx:503
+ void EditEngine::FieldClicked(const class SvxFieldItem &,int,int,)
+ 100
+include/editeng/svxrtf.hxx:247
+ void SvxRTFParser::UnknownAttrToken(int,class SfxItemSet *,)
+ 10
+include/filter/msfilter/msdffimp.hxx:506
+ void SvxMSDffManager::ProcessClientAnchor2(class SvStream &,class DffRecordHeader &,class SvxMSDffClientData &,struct DffObjData &,)
+ 1101
+include/filter/msfilter/msdffimp.hxx:546
+ _Bool SvxMSDffManager::ShapeHasText(unsigned long,unsigned long,)const
+ 00
+include/oox/dump/dumperbase.hxx:473
+ void oox::dump::ConfigItemBase::implProcessConfigItemInt(class oox::TextInputStream &,long,const class rtl::OUString &,)
+ 011
+include/oox/dump/dumperbase.hxx:564
+ class rtl::OUString oox::dump::NameListBase::implGetNameDbl(const class oox::dump::Config &,double,)const
+ 01
+include/oox/dump/oledumper.hxx:166
+ void oox::dump::ComCtlObjectBase::implDumpCommonExtra(long,)
+ 0
+include/oox/export/shapes.hxx:136
+ class oox::drawingml::ShapeExport & oox::drawingml::ShapeExport::WriteNonVisualProperties(const class com::sun::star::uno::Reference<class com::sun::star::drawing::XShape> &,)
+ 0
+include/sfx2/objsh.hxx:637
+ void SfxObjectShell::FillClass(class SvGlobalName *,enum SotClipboardFormatId *,class rtl::OUString *,class rtl::OUString *,class rtl::OUString *,int,_Bool,)const
+ 1101111
+include/sfx2/sfxstatuslistener.hxx:49
+ void SfxStatusListener::StateChanged(unsigned short,enum SfxItemState,const class SfxPoolItem *,)
+ 011
+include/sfx2/sidebar/ControllerItem.hxx:44
+ void sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface::NotifyItemUpdate(const unsigned short,const enum SfxItemState,const class SfxPoolItem *,const _Bool,)
+ 1110
+include/sfx2/sidebar/TitleBar.hxx:61
+ void sfx2::sidebar::TitleBar::PaintDecoration(class OutputDevice &,const class tools::Rectangle &,)
+ 10
+include/sfx2/stbitem.hxx:100
+ _Bool SfxStatusBarControl::MouseButtonUp(const class MouseEvent &,)
+ 0
+include/sfx2/thumbnailviewitem.hxx:118
+ void ThumbnailViewItem::calculateItemsPosition(const long,const long,const long,unsigned int,const struct ThumbnailItemAttributes *,)
+ 10111
+include/svl/svdde.hxx:228
+ _Bool DdeGetPutItem::Put(const class DdeData *,)
+ 0
+include/svl/svdde.hxx:237
+ class DdeData * DdeTopic::Get(enum SotClipboardFormatId,)
+ 0
+include/svl/svdde.hxx:238
+ _Bool DdeTopic::Put(const class DdeData *,)
+ 0
+include/svl/svdde.hxx:239
+ _Bool DdeTopic::Execute(const class rtl::OUString *,)
+ 0
+include/svl/svdde.hxx:241
+ _Bool DdeTopic::MakeItem(const class rtl::OUString &,)
+ 0
+include/svtools/table/tablerenderer.hxx:113
+ void svt::table::ITableRenderer::PaintColumnHeader(int,_Bool,class OutputDevice &,const class tools::Rectangle &,const class StyleSettings &,)
+ 10111
+include/svtools/table/tablerenderer.hxx:177
+ void svt::table::ITableRenderer::PaintRowHeader(_Bool,_Bool,class OutputDevice &,const class tools::Rectangle &,const class StyleSettings &,)
+ 00111
+include/svtools/table/tablerenderer.hxx:224
+ void svt::table::ITableRenderer::HideCellCursor(class vcl::Window &,const class tools::Rectangle &,)
+ 10
+include/svx/fmtools.hxx:141
+ void FmXDisposeListener::disposing(const struct com::sun::star::lang::EventObject &,short,)
+ 01
+include/svx/IAccessibleParent.hxx:80
+ _Bool accessibility::IAccessibleParent::ReplaceChild(class accessibility::AccessibleShape *,const class com::sun::star::uno::Reference<class com::sun::star::drawing::XShape> &,const long,const class accessibility::AccessibleShapeTreeInfo &,)
+ 1101
+include/svx/selectioncontroller.hxx:48
+ _Bool sdr::SelectionController::onMouseButtonUp(const class MouseEvent &,class vcl::Window *,)
+ 10
+include/svx/svdhdl.hxx:242
+ void SdrHdl::onHelpRequest(const class HelpEvent &,)
+ 0
+include/svx/svdundo.hxx:69
+ class rtl::OUString SdrUndoAction::GetSdrRepeatComment(class SdrView &,)const
+ 0
+include/svx/svxdlg.hxx:463
+ class VclPtr<class SfxAbstractTabDialog> SvxAbstractDialogFactory::CreateSvxFormatCellsDialog(class weld::Window *,const class SfxItemSet *,const class SdrModel &,const class SdrObject *,)
+ 1110
+include/vcl/accessibletable.hxx:91
+ class tools::Rectangle vcl::table::IAccessibleTable::GetFieldCharacterBounds(int,int,int,)
+ 001
+include/vcl/accessibletable.hxx:92
+ int vcl::table::IAccessibleTable::GetFieldIndexAtPoint(int,int,const class Point &,)
+ 001
+include/vcl/accessibletable.hxx:93
+ void vcl::table::IAccessibleTable::FillAccessibleStateSetForCell(class utl::AccessibleStateSetHelper &,int,unsigned short,)const
+ 110
+include/vcl/dndhelp.hxx:72
+ void vcl::unohelper::DragAndDropClient::dragExit(const struct com::sun::star::datatransfer::dnd::DropTargetEvent &,)
+ 0
+include/vcl/ITiledRenderable.hxx:209
+ void vcl::ITiledRenderable::setClientZoom(int,int,int,int,)
+ 1010
+include/vcl/opengl/OpenGLContext.hxx:141
+ struct SystemWindowData OpenGLContext::generateWinData(class vcl::Window *,_Bool,)
+ 10
+include/vcl/task.hxx:71
+ unsigned long Task::UpdateMinPeriod(unsigned long,unsigned long,)const
+ 01
+include/vcl/treelist.hxx:304
+ void SvListView::ModelIsMoving(class SvTreeListEntry *,class SvTreeListEntry *,unsigned long,)
+ 100
+include/xmloff/txtimp.hxx:677
+ void XMLTextImportHelper::RedlineAdjustStartNodeCursor(_Bool,)
+ 0
+include/xmloff/xmlevent.hxx:129
+ class SvXMLImportContext * XMLEventContextFactory::CreateContext(class SvXMLImport &,unsigned short,const class rtl::OUString &,const class com::sun::star::uno::Reference<class com::sun::star::xml::sax::XAttributeList> &,class XMLEventsImportContext *,const class rtl::OUString &,const class rtl::OUString &,)
+ 1111110
+include/xmloff/xmlimp.hxx:244
+ class SvXMLImportContext * SvXMLImport::CreateDocumentContext(const unsigned short,const class rtl::OUString &,const class com::sun::star::uno::Reference<class com::sun::star::xml::sax::XAttributeList> &,)
+ 110
+sc/inc/filter.hxx:82
+ void ScFormatFilterPlugin::ScExportHTML(class SvStream &,const class rtl::OUString &,class ScDocument *,const class ScRange &,const unsigned short,_Bool,const class rtl::OUString &,class rtl::OUString &,const class rtl::OUString &,)
+ 111101111
+sc/inc/filter.hxx:84
+ void ScFormatFilterPlugin::ScExportRTF(class SvStream &,class ScDocument *,const class ScRange &,const unsigned short,)
+ 1110
+sc/inc/formulagroup.hxx:145
+ class boost::intrusive_ptr<class ScMatrix> sc::FormulaGroupInterpreter::inverseMatrix(const class ScMatrix &,)
+ 0
+sc/source/core/opencl/formulagroupcl.cxx:1059
+ void sc::opencl::DynamicKernelSlidingArgument::GenSlidingWindowFunction(class std::__cxx11::basic_stringstream<char> &,)
+ 0
+sc/source/ui/vba/vbarange.hxx:68
+ void ValueGetter::processValue(int,int,const class com::sun::star::uno::Any &,)
+ 001
+sd/source/ui/inc/View.hxx:92
+ signed char sd::View::AcceptDrop(const struct AcceptDropEvent &,class DropTargetHelper &,class sd::Window *,unsigned short,struct o3tl::strong_int<unsigned char, struct SdrLayerIDTag>,)
+ 11001
+sd/source/ui/inc/ViewClipboard.hxx:64
+ unsigned short sd::ViewClipboard::DetermineInsertPosition(const class SdTransferable &,)
+ 0
+sd/source/ui/inc/ViewShell.hxx:212
+ void sd::ViewShell::UpdatePreview(class SdPage *,_Bool,)
+ 10
+sdext/source/pdfimport/inc/contentsink.hxx:150
+ void pdfi::ContentSink::drawMask(const class com::sun::star::uno::Sequence<struct com::sun::star::beans::PropertyValue> &,_Bool,)
+ 10
+sdext/source/pdfimport/inc/contentsink.hxx:160
+ void pdfi::ContentSink::drawColorMaskedImage(const class com::sun::star::uno::Sequence<struct com::sun::star::beans::PropertyValue> &,const class com::sun::star::uno::Sequence<class com::sun::star::uno::Any> &,)
+ 10
+sdext/source/pdfimport/inc/contentsink.hxx:164
+ void pdfi::ContentSink::drawMaskedImage(const class com::sun::star::uno::Sequence<struct com::sun::star::beans::PropertyValue> &,const class com::sun::star::uno::Sequence<struct com::sun::star::beans::PropertyValue> &,_Bool,)
+ 110
+sdext/source/pdfimport/inc/treevisiting.hxx:46
+ void pdfi::ElementTreeVisitor::visit(struct pdfi::HyperlinkElement &,const class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > >, class std::__debug::list<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> >, class std::allocator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > > >, struct std::bidirectional_iterator_tag> &,)
+ 10
+sdext/source/pdfimport/inc/treevisiting.hxx:47
+ void pdfi::ElementTreeVisitor::visit(struct pdfi::TextElement &,const class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > >, class std::__debug::list<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> >, class std::allocator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > > >, struct std::bidirectional_iterator_tag> &,)
+ 10
+sdext/source/pdfimport/inc/treevisiting.hxx:49
+ void pdfi::ElementTreeVisitor::visit(struct pdfi::FrameElement &,const class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > >, class std::__debug::list<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> >, class std::allocator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > > >, struct std::bidirectional_iterator_tag> &,)
+ 10
+sdext/source/pdfimport/inc/treevisiting.hxx:51
+ void pdfi::ElementTreeVisitor::visit(struct pdfi::ImageElement &,const class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > >, class std::__debug::list<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> >, class std::allocator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > > >, struct std::bidirectional_iterator_tag> &,)
+ 10
+sdext/source/pdfimport/inc/treevisiting.hxx:52
+ void pdfi::ElementTreeVisitor::visit(struct pdfi::PageElement &,const class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > >, class std::__debug::list<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> >, class std::allocator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > > >, struct std::bidirectional_iterator_tag> &,)
+ 10
+sdext/source/pdfimport/inc/treevisiting.hxx:53
+ void pdfi::ElementTreeVisitor::visit(struct pdfi::DocumentElement &,const class __gnu_debug::_Safe_iterator<struct std::__cxx1998::_List_const_iterator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > >, class std::__debug::list<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> >, class std::allocator<class std::unique_ptr<struct pdfi::Element, struct std::default_delete<struct pdfi::Element> > > >, struct std::bidirectional_iterator_tag> &,)
+ 10
+sdext/source/presenter/PresenterScrollBar.hxx:178
+ double sdext::presenter::PresenterScrollBar::GetDragDistance(const int,const int,)const
+ 01
+sdext/source/presenter/PresenterScrollBar.hxx:180
+ double sdext::presenter::PresenterScrollBar::GetMinor(const double,const double,)const
+ 10
+slideshow/source/engine/animationfactory.cxx:443
+ void slideshow::internal::(anonymous namespace)::GenericAnimation::prefetch(const class std::shared_ptr<class slideshow::internal::AnimatableShape> &,const class std::shared_ptr<class slideshow::internal::ShapeAttributeLayer> &,)
+ 00
+slideshow/source/engine/opengl/TransitionImpl.hxx:174
+ void OGLTransitionImpl::prepare(double,double,double,double,double,)
+ 01100
+slideshow/source/engine/opengl/TransitionImpl.hxx:180
+ void OGLTransitionImpl::finish(double,double,double,double,double,)
+ 00000
+slideshow/source/inc/animation.hxx:61
+ void slideshow::internal::Animation::prefetch(const class std::shared_ptr<class slideshow::internal::AnimatableShape> &,const class std::shared_ptr<class slideshow::internal::ShapeAttributeLayer> &,)
+ 00
+slideshow/source/inc/shapelistenereventhandler.hxx:51
+ _Bool slideshow::internal::ShapeListenerEventHandler::listenerAdded(const class com::sun::star::uno::Reference<class com::sun::star::presentation::XShapeEventListener> &,const class com::sun::star::uno::Reference<class com::sun::star::drawing::XShape> &,)
+ 01
+slideshow/source/inc/shapelistenereventhandler.hxx:54
+ _Bool slideshow::internal::ShapeListenerEventHandler::listenerRemoved(const class com::sun::star::uno::Reference<class com::sun::star::presentation::XShapeEventListener> &,const class com::sun::star::uno::Reference<class com::sun::star::drawing::XShape> &,)
+ 01
+starmath/source/wordexportbase.hxx:37
+ void SmWordExportBase::HandleText(const class SmNode *,int,)
+ 10
+svx/source/inc/fmtextcontrolshell.hxx:69
+ void svx::IContextRequestObserver::contextMenuRequested(const struct com::sun::star::awt::MouseEvent &,)
+ 0
+sw/inc/calbck.hxx:144
+ void SwClient::Modify(const class SfxPoolItem *const,const class SfxPoolItem *const,)
+ 10
+sw/inc/IDocumentLinksAdministration.hxx:55
+ _Bool IDocumentLinksAdministration::SetData(const class rtl::OUString &,const class rtl::OUString &,const class com::sun::star::uno::Any &,)
+ 100
+sw/inc/IDocumentRedlineAccess.hxx:168
+ _Bool IDocumentRedlineAccess::AppendTableRowRedline(class SwTableRowRedline *,_Bool,)
+ 10
+sw/inc/IDocumentRedlineAccess.hxx:169
+ _Bool IDocumentRedlineAccess::AppendTableCellRedline(class SwTableCellRedline *,_Bool,)
+ 10
+sw/inc/swcrsr.hxx:161
+ _Bool SwCursor::LeftRight(_Bool,unsigned short,unsigned short,_Bool,_Bool,_Bool,const class SwRootFrame *,)
+ 1100000
+sw/source/core/access/acccontext.hxx:348
+ _Bool SwAccessibleContext::SetSelectedState(_Bool,)
+ 0
+sw/source/core/inc/flowfrm.hxx:145
+ _Bool SwFlowFrame::ShouldBwdMoved(class SwLayoutFrame *,_Bool,_Bool &,)
+ 101
+sw/source/core/inc/swblocks.hxx:109
+ class ErrCode SwImpBlocks::Rename(unsigned short,const class rtl::OUString &,const class rtl::OUString &,)
+ 110
+sw/source/core/inc/txmsrt.hxx:145
+ void SwTOXSortTabBase::FillText(class SwTextNode &,const class SwIndex &,unsigned short,const class SwRootFrame *const,)const
+ 1100
+sw/source/filter/ww8/wrtww8.hxx:798
+ void MSWordExportBase::WriteHyperlinkData(const class sw::mark::IFieldmark &,)
+ 0
+sw/source/filter/ww8/wrtww8.hxx:863
+ void MSWordExportBase::OutputGrfNode(const class SwGrfNode &,)
+ 0
+sw/source/filter/xml/xmlexpit.hxx:84
+ void SvXMLExportItemMapper::handleElementItem(class SvXMLExport &,const struct SvXMLItemMapEntry &,const class SfxPoolItem &,const class SvXMLUnitConverter &,const class SfxItemSet &,enum SvXmlExportFlags,)const
+ 011000
+sw/source/filter/xml/xmlimpit.hxx:48
+ _Bool SvXMLImportItemMapper::handleSpecialItem(const struct SvXMLItemMapEntry &,class SfxPoolItem &,class SfxItemSet &,const class rtl::OUString &,const class SvXMLUnitConverter &,const class SvXMLNamespaceMap &,)
+ 111110
+sw/source/uibase/inc/imaildsplistener.hxx:44
+ void IMailDispatcherListener::idle(class rtl::Reference<class MailDispatcher>,)
+ 0
+sw/source/uibase/inc/imaildsplistener.hxx:50
+ void IMailDispatcherListener::mailDelivered(class rtl::Reference<class MailDispatcher>,class com::sun::star::uno::Reference<class com::sun::star::mail::XMailMessage>,)
+ 01
+vcl/inc/outdev.h:122
+ _Bool ImplGlyphFallbackFontSubstitution::FindFontSubstitute(class FontSelectPattern &,class LogicalFontInstance *,class rtl::OUString &,)const
+ 101
+vcl/inc/salframe.hxx:145
+ void SalFrame::SetRepresentedURL(const class rtl::OUString &,)
+ 0
+vcl/inc/salframe.hxx:191
+ void SalFrame::Flush(const class tools::Rectangle &,)
+ 0
+vcl/inc/salframe.hxx:201
+ _Bool SalFrame::MapUnicodeToKeyCode(char16_t,struct o3tl::strong_int<unsigned short, struct LanguageTypeTag>,class vcl::KeyCode &,)
+ 000
+vcl/inc/salframe.hxx:244
+ void SalFrame::BeginSetClipRegion(unsigned int,)
+ 0
+vcl/inc/salgdiimpl.hxx:78
+ void SalGraphicsImpl::SetXORMode(_Bool,_Bool,)
+ 10
+vcl/inc/salgdiimpl.hxx:115
+ _Bool SalGraphicsImpl::drawPolyLineBezier(unsigned int,const struct SalPoint *,const enum PolyFlags *,)
+ 000
+vcl/inc/salgdiimpl.hxx:120
+ _Bool SalGraphicsImpl::drawPolygonBezier(unsigned int,const struct SalPoint *,const enum PolyFlags *,)
+ 000
+vcl/inc/salgdiimpl.hxx:125
+ _Bool SalGraphicsImpl::drawPolyPolygonBezier(unsigned int,const unsigned int *,const struct SalPoint *const *,const enum PolyFlags *const *,)
+ 0000
+vcl/inc/salgdiimpl.hxx:132
+ void SalGraphicsImpl::copyArea(long,long,long,long,long,long,_Bool,)
+ 1111110
+vcl/inc/salgdiimpl.hxx:166
+ _Bool SalGraphicsImpl::drawEPS(long,long,long,long,void *,unsigned int,)
+ 000000
+vcl/inc/salinst.hxx:92
+ _Bool SalInstance::SVMainHook(int *,)
+ 0
+vcl/inc/salinst.hxx:125
+ void SalInstance::GetPrinterQueueState(struct SalPrinterQueueInfo *,)
+ 0
+vcl/inc/salinst.hxx:185
+ void SalInstance::AddToRecentDocumentList(const class rtl::OUString &,const class rtl::OUString &,const class rtl::OUString &,)
+ 100
+vcl/inc/salmenu.hxx:71
+ void SalMenu::SetItemBits(unsigned int,enum MenuItemBits,)
+ 10
+vcl/inc/salmenu.hxx:75
+ void SalMenu::SetItemImage(unsigned int,class SalMenuItem *,const class Image &,)
+ 011
+vcl/inc/salmenu.hxx:76
+ void SalMenu::SetAccelerator(unsigned int,class SalMenuItem *,const class vcl::KeyCode &,const class rtl::OUString &,)
+ 0101
+vcl/inc/salmenu.hxx:77
+ void SalMenu::GetSystemMenuData(struct SystemMenuData *,)
+ 0
+vcl/inc/salmenu.hxx:80
+ _Bool SalMenu::AddMenuBarButton(const struct SalMenuButtonItem &,)
+ 0
+vcl/inc/salmenu.hxx:81
+ void SalMenu::RemoveMenuBarButton(unsigned short,)
+ 0
+vcl/inc/salmenu.hxx:93
+ class tools::Rectangle SalMenu::GetMenuBarButtonRectPixel(unsigned short,class SalFrame *,)
+ 00
+vcl/inc/salobj.hxx:49
+ void SalObject::Enable(_Bool,)
+ 0
+vcl/inc/salprn.hxx:83
+ void SalInfoPrinter::InitPaperFormats(const class ImplJobSetup *,)
+ 0
+vcl/inc/salprn.hxx:85
+ int SalInfoPrinter::GetLandscapeAngle(const class ImplJobSetup *,)
+ 0
+vcl/inc/salprn.hxx:114
+ class SalGraphics * SalPrinter::StartPage(class ImplJobSetup *,_Bool,)
+ 10
+vcl/inc/WidgetDrawInterface.hxx:63
+ _Bool vcl::WidgetDrawInterface::drawNativeControl(enum ControlType,enum ControlPart,const class tools::Rectangle &,enum ControlState,const class ImplControlValue &,const class rtl::OUString &,)
+ 111110
+vcl/inc/WidgetDrawInterface.hxx:87
+ _Bool vcl::WidgetDrawInterface::getNativeControlRegion(enum ControlType,enum ControlPart,const class tools::Rectangle &,enum ControlState,const class ImplControlValue &,const class rtl::OUString &,class tools::Rectangle &,class tools::Rectangle &,)
+ 11111011
+writerfilter/inc/dmapper/resourcemodel.hxx:173
+ void writerfilter::BinaryObj::data(const unsigned char *,unsigned long,class tools::SvRef<class writerfilter::Reference<class writerfilter::Properties> >,)
+ 110
+writerfilter/inc/ooxml/OOXMLDocument.hxx:216
+ void writerfilter::ooxml::OOXMLDocument::setXNoteType(unsigned int,)
+ 0
+writerfilter/source/dmapper/LoggedResources.hxx:93
+ void writerfilter::LoggedStream::lcl_info(const class std::__cxx11::basic_string<char, struct std::char_traits<char>, class std::allocator<char> > &,)
+ 0
+writerfilter/source/dmapper/LoggedResources.hxx:129
+ void writerfilter::LoggedTable::lcl_entry(int,class tools::SvRef<class writerfilter::Reference<class writerfilter::Properties> >,)
+ 01
+xmloff/inc/forms/property_handler.hxx:44
+ class rtl::OUString xmloff::PropertyHandlerBase::getAttributeValue(const class std::__debug::map<enum xmloff::PropertyId, class com::sun::star::uno::Any, struct std::less<enum xmloff::PropertyId>, class std::allocator<struct std::pair<const enum xmloff::PropertyId, class com::sun::star::uno::Any> > > &,)const
+ 0