Kaydet (Commit) 8045cef0 authored tarafından Noel Grandin's avatar Noel Grandin

improve unusedfields loplugin readonly analysis

(*) better analysis of init-list-expressions
(*) fix analysis of calls to members, turns out there is no parameter
offset after all
(*) check for passing arrays to functions, need to check
  if the parameter is T* or T const *
(*) check for assigning field to a T& variable

Change-Id: Ie6f07f970310c3854e74619fe4fd02a299bf6879
üst 5a6d6429
......@@ -82,7 +82,7 @@ public:
bool VisitMemberExpr( const MemberExpr* );
bool VisitDeclRefExpr( const DeclRefExpr* );
bool VisitCXXConstructorDecl( const CXXConstructorDecl* );
bool VisitVarDecl( const VarDecl* );
bool VisitInitListExpr( const InitListExpr* );
bool TraverseCXXConstructorDecl( CXXConstructorDecl* );
bool TraverseCXXMethodDecl( CXXMethodDecl* );
bool TraverseFunctionDecl( FunctionDecl* );
......@@ -93,7 +93,9 @@ private:
void checkWriteOnly(const FieldDecl* fieldDecl, const Expr* memberExpr);
void checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberExpr);
bool isSomeKindOfZero(const Expr* arg);
bool IsPassedByNonConstRef(const Stmt * child, const CallExpr * callExpr, const FunctionDecl * calleeFunctionDecl, bool bParamsAndArgsOffset);
bool IsPassedByNonConst(const FieldDecl* fieldDecl, const Stmt * child, const CallExpr * callExpr,
const FunctionDecl * calleeFunctionDecl);
bool IsPassedByNonConst(const FieldDecl* fieldDecl, const Stmt * child, const CXXConstructExpr * cxxConstructExpr);
RecordDecl * insideMoveOrCopyDeclParent;
RecordDecl * insideStreamOutputOperator;
......@@ -600,9 +602,8 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
if (op == UO_AddrOf || op == UO_PostInc || op == UO_PostDec || op == UO_PreInc || op == UO_PreDec)
{
bPotentiallyWrittenTo = true;
break;
}
walkupUp();
break;
}
else if (auto arraySubscriptExpr = dyn_cast<ArraySubscriptExpr>(parent))
{
......@@ -621,10 +622,8 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
&& operatorCallExpr->getArg(0) == child && !calleeMethodDecl->isConst())
{
bPotentiallyWrittenTo = true;
break;
}
bool bParamsAndArgsOffset = calleeMethodDecl != nullptr;
if (IsPassedByNonConstRef(child, operatorCallExpr, calleeFunctionDecl, bParamsAndArgsOffset))
else if (IsPassedByNonConst(fieldDecl, child, operatorCallExpr, calleeFunctionDecl))
bPotentiallyWrittenTo = true;
}
else
......@@ -647,8 +646,7 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
bPotentiallyWrittenTo = true;
break;
}
// check for being passed as parameter by non-const-reference
if (IsPassedByNonConstRef(child, cxxMemberCallExpr, calleeMethodDecl, false/*bParamsAndArgsOffset*/))
if (IsPassedByNonConst(fieldDecl, child, cxxMemberCallExpr, calleeMethodDecl))
bPotentiallyWrittenTo = true;
}
else
......@@ -657,24 +655,15 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
}
else if (auto cxxConstructExpr = dyn_cast<CXXConstructExpr>(parent))
{
const CXXConstructorDecl * cxxConstructorDecl = cxxConstructExpr->getConstructor();
// check for being passed as parameter by non-const-reference
unsigned len = std::min(cxxConstructExpr->getNumArgs(),
cxxConstructorDecl->getNumParams());
for (unsigned i = 0; i < len; ++i)
if (cxxConstructExpr->getArg(i) == child)
if (loplugin::TypeCheck(cxxConstructorDecl->getParamDecl(i)->getType()).NonConst().LvalueReference())
{
bPotentiallyWrittenTo = true;
break;
}
if (IsPassedByNonConst(fieldDecl, child, cxxConstructExpr))
bPotentiallyWrittenTo = true;
break;
}
else if (auto callExpr = dyn_cast<CallExpr>(parent))
{
const FunctionDecl * calleeFunctionDecl = callExpr->getDirectCallee();
if (calleeFunctionDecl) {
if (IsPassedByNonConstRef(child, callExpr, calleeFunctionDecl, false/*bParamsAndArgsOffset*/))
if (IsPassedByNonConst(fieldDecl, child, callExpr, calleeFunctionDecl))
bPotentiallyWrittenTo = true;
} else
bPotentiallyWrittenTo = true; // conservative, could improve
......@@ -687,8 +676,13 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
|| op == BO_DivAssign || op == BO_RemAssign || op == BO_AddAssign
|| op == BO_SubAssign || op == BO_ShlAssign || op == BO_ShrAssign
|| op == BO_AndAssign || op == BO_XorAssign || op == BO_OrAssign;
if (binaryOp->getLHS() == child && assignmentOp) {
bPotentiallyWrittenTo = true;
if (assignmentOp)
{
if (binaryOp->getLHS() == child)
bPotentiallyWrittenTo = true;
else if (loplugin::TypeCheck(binaryOp->getLHS()->getType()).LvalueReference().NonConstVolatile())
// if the LHS is a non-const reference, we could write to the field later on
bPotentiallyWrittenTo = true;
}
break;
}
......@@ -748,6 +742,7 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
parent->dump();
}
memberExpr->dump();
fieldDecl->getType()->dump();
}
MyFieldInfo fieldInfo = niceName(fieldDecl);
......@@ -755,16 +750,52 @@ void UnusedFields::checkReadOnly(const FieldDecl* fieldDecl, const Expr* memberE
writeToSet.insert(fieldInfo);
}
bool UnusedFields::IsPassedByNonConstRef(const Stmt * child, const CallExpr * callExpr,
const FunctionDecl * calleeFunctionDecl,
bool bParamsAndArgsOffset)
bool UnusedFields::IsPassedByNonConst(const FieldDecl* fieldDecl, const Stmt * child, const CallExpr * callExpr,
const FunctionDecl * calleeFunctionDecl)
{
unsigned len = std::min(callExpr->getNumArgs() + (bParamsAndArgsOffset ? 1 : 0),
unsigned len = std::min(callExpr->getNumArgs(),
calleeFunctionDecl->getNumParams());
for (unsigned i = 0; i < len; ++i)
if (callExpr->getArg(i + (bParamsAndArgsOffset ? 1 : 0)) == child)
if (loplugin::TypeCheck(calleeFunctionDecl->getParamDecl(i)->getType()).NonConst().LvalueReference())
return true;
// if it's an array, passing it by value to a method typically means the
// callee takes a pointer and can modify the array
if (fieldDecl->getType()->isConstantArrayType())
{
for (unsigned i = 0; i < len; ++i)
if (callExpr->getArg(i) == child)
if (loplugin::TypeCheck(calleeFunctionDecl->getParamDecl(i)->getType()).NonConst().Pointer())
return true;
}
else
{
for (unsigned i = 0; i < len; ++i)
if (callExpr->getArg(i) == child)
if (loplugin::TypeCheck(calleeFunctionDecl->getParamDecl(i)->getType()).NonConst().LvalueReference())
return true;
}
return false;
}
bool UnusedFields::IsPassedByNonConst(const FieldDecl* fieldDecl, const Stmt * child, const CXXConstructExpr * cxxConstructExpr)
{
const CXXConstructorDecl * cxxConstructorDecl = cxxConstructExpr->getConstructor();
unsigned len = std::min(cxxConstructExpr->getNumArgs(),
cxxConstructorDecl->getNumParams());
// if it's an array, passing it by value to a method typically means the
// callee takes a pointer and can modify the array
if (fieldDecl->getType()->isConstantArrayType())
{
for (unsigned i = 0; i < len; ++i)
if (cxxConstructExpr->getArg(i) == child)
if (loplugin::TypeCheck(cxxConstructorDecl->getParamDecl(i)->getType()).NonConst().Pointer())
return true;
}
else
{
for (unsigned i = 0; i < len; ++i)
if (cxxConstructExpr->getArg(i) == child)
if (loplugin::TypeCheck(cxxConstructorDecl->getParamDecl(i)->getType()).NonConst().LvalueReference())
return true;
}
return false;
}
......@@ -803,28 +834,12 @@ bool UnusedFields::VisitCXXConstructorDecl( const CXXConstructorDecl* cxxConstru
// Fields that are assigned via init-list-expr do not get visited in VisitDeclRef, so
// have to do it here.
// TODO could be more precise here about which fields are actually being written to
bool UnusedFields::VisitVarDecl( const VarDecl* varDecl)
bool UnusedFields::VisitInitListExpr( const InitListExpr* initListExpr)
{
if (!varDecl->getLocation().isValid() || ignoreLocation( varDecl ))
return true;
// ignore stuff that forms part of the stable URE interface
if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(varDecl->getLocation())))
return true;
if (!varDecl->hasInit())
return true;
auto initListExpr = dyn_cast<InitListExpr>(varDecl->getInit()->IgnoreImplicit());
if (!initListExpr)
if (ignoreLocation( initListExpr ))
return true;
// If this is an array, navigate down until we hit a record.
// It appears to be somewhat painful to navigate down an array type structure reliably.
QualType varType = varDecl->getType().getDesugaredType(compiler.getASTContext());
while (varType->isArrayType() || varType->isConstantArrayType()
|| varType->isIncompleteArrayType() || varType->isVariableArrayType()
|| varType->isDependentSizedArrayType())
varType = varType->getAsArrayTypeUnsafe()->getElementType().getDesugaredType(compiler.getASTContext());
QualType varType = initListExpr->getType().getDesugaredType(compiler.getASTContext());
auto recordType = varType->getAs<RecordType>();
if (!recordType)
return true;
......
......@@ -153,7 +153,23 @@ for d in definitionSet:
parentClazz = d[0];
if d in writeToSet:
continue
fieldType = definitionToTypeMap[d]
srcLoc = definitionToSourceLocationMap[d];
if "ModuleClient" in fieldType:
continue
# this is all representations of on-disk data structures
if (srcLoc.startswith("sc/source/filter/inc/scflt.hxx")
or srcLoc.startswith("sw/source/filter/ww8/")
or srcLoc.startswith("vcl/source/filter/sgvmain.hxx")
or srcLoc.startswith("vcl/source/filter/sgfbram.hxx")
or srcLoc.startswith("vcl/inc/unx/XIM.h")
or srcLoc.startswith("vcl/inc/unx/gtk/gloactiongroup.h")
or srcLoc.startswith("include/svl/svdde.hxx")):
continue
# I really don't care about these ancient file formats
if (srcLoc.startswith("hwpfilter/")
or srcLoc.startswith("lotuswordpro/")):
continue
readonlySet.add((d[0] + " " + d[1] + " " + definitionToTypeMap[d], srcLoc))
......
......@@ -82,16 +82,10 @@ connectivity/source/drivers/evoab2/EApi.h:131
(anonymous) country char *
connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx:85
connectivity::mozab::ProfileAccess m_ProductProfileList class connectivity::mozab::ProductStruct [4]
connectivity/source/drivers/postgresql/pq_connection.hxx:116
pq_sdbc_driver::ConnectionSettings showSystemColumns _Bool
connectivity/source/inc/dbase/DIndexIter.hxx:36
connectivity::dbase::OIndexIterator m_pOperator file::OBoolOperator *
connectivity/source/inc/dbase/DTable.hxx:62
connectivity::dbase::ODbaseTable::DBFHeader dateElems sal_uInt8 [3]
connectivity/source/inc/dbase/DTable.hxx:66
connectivity::dbase::ODbaseTable::DBFHeader trailer sal_uInt8 [20]
connectivity/source/inc/dbase/DTable.hxx:89
connectivity::dbase::ODbaseTable::DBFColumn db_frei2 sal_uInt8 [14]
connectivity/source/inc/dbase/DIndexIter.hxx:37
connectivity::dbase::OIndexIterator m_pOperand const file::OOperand *
connectivity/source/inc/OColumn.hxx:45
connectivity::OColumn m_AutoIncrement _Bool
connectivity/source/inc/OColumn.hxx:46
......@@ -112,9 +106,13 @@ connectivity/source/inc/OTypeInfo.hxx:34
connectivity::OTypeInfo nPrecision sal_Int32
connectivity/source/inc/OTypeInfo.hxx:36
connectivity::OTypeInfo nMaximumScale sal_Int16
cppu/source/helper/purpenv/helper_purpenv_Mapping.cxx:50
connectivity/source/inc/writer/WTable.hxx:70
connectivity::writer::OWriterTable m_nStartCol sal_Int32
connectivity/source/inc/writer/WTable.hxx:71
connectivity::writer::OWriterTable m_nStartRow sal_Int32
cppu/source/helper/purpenv/helper_purpenv_Mapping.cxx:34
Mapping m_from uno::Environment
cppu/source/helper/purpenv/helper_purpenv_Mapping.cxx:51
cppu/source/helper/purpenv/helper_purpenv_Mapping.cxx:35
Mapping m_to uno::Environment
cppu/source/helper/purpenv/Proxy.hxx:36
Proxy m_from css::uno::Environment
......@@ -124,11 +122,11 @@ cppu/source/threadpool/threadpool.cxx:377
_uno_ThreadPool dummy sal_Int32
cppu/source/typelib/typelib.cxx:61
AlignSize_Impl nInt16 sal_Int16
cppu/source/uno/cascade_mapping.cxx:50
cppu/source/uno/cascade_mapping.cxx:40
MediatorMapping m_from uno::Environment
cppu/source/uno/cascade_mapping.cxx:51
cppu/source/uno/cascade_mapping.cxx:41
MediatorMapping m_interm uno::Environment
cppu/source/uno/cascade_mapping.cxx:52
cppu/source/uno/cascade_mapping.cxx:42
MediatorMapping m_to uno::Environment
cppu/source/uno/check.cxx:38
(anonymous namespace)::C1 n1 sal_Int16
......@@ -178,80 +176,26 @@ cui/source/inc/autocdlg.hxx:229
StringChangeList aNewEntries DoubleStringArray
cui/source/inc/autocdlg.hxx:230
StringChangeList aDeletedEntries DoubleStringArray
cui/source/inc/numpages.hxx:166
cui/source/inc/backgrnd.hxx:108
SvxBackgroundTabPage bLinkOnly _Bool
cui/source/inc/cuicharmap.hxx:83
SvxCharacterMap m_pFavCharView VclPtr<class SvxCharView> [16]
cui/source/inc/numpages.hxx:167
SvxNumPickTabPage aNumSettingsArrays SvxNumSettingsArr_Impl [16]
cui/source/inc/swpossizetabpage.hxx:77
SvxSwPosSizeTabPage m_aFramePosString class SvxSwFramePosString
cui/source/options/optcolor.cxx:257
ColorConfigWindow_Impl aModuleOptions class SvtModuleOptions
cui/source/options/optpath.cxx:79
OptPath_Impl m_aDefOpt class SvtDefaultOptions
dbaccess/source/core/api/RowSetBase.hxx:76
dbaccess::ORowSetBase m_aModuleClient class dbaccess::OModuleClient
dbaccess/source/core/dataaccess/ModelImpl.hxx:168
dbaccess::ODatabaseModelImpl m_aModuleClient class dbaccess::OModuleClient
dbaccess/source/sdbtools/connection/connectiontools.hxx:48
sdbtools::ConnectionTools m_aModuleClient class sdbtools::SdbtClient
dbaccess/source/sdbtools/connection/objectnames.hxx:44
sdbtools::ObjectNames m_aModuleClient class sdbtools::SdbtClient
dbaccess/source/sdbtools/connection/tablename.cxx:56
sdbtools::TableName_Impl m_aModuleClient class sdbtools::SdbtClient
dbaccess/source/ui/app/AppController.hxx:97
dbaui::OApplicationController m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/control/tabletree.cxx:184
dbaui::(anonymous namespace)::OViewSetter m_aEqualFunctor ::comphelper::UStringMixEqual
dbaccess/source/ui/inc/advancedsettingsdlg.hxx:41
dbaui::AdvancedSettingsDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/brwctrlr.hxx:79
dbaui::SbaXDataBrowserController m_aModuleClient class dbaui::OModuleClient
cui/source/options/personalization.hxx:34
SvxPersonalizationTabPage m_vDefaultPersonaImages VclPtr<class PushButton> [3]
cui/source/options/personalization.hxx:85
SelectPersonaDialog m_vResultList VclPtr<class PushButton> [9]
cui/source/options/personalization.hxx:86
SelectPersonaDialog m_vSearchSuggestions VclPtr<class PushButton> [6]
dbaccess/source/ui/inc/charsetlistbox.hxx:42
dbaui::CharSetListBox m_aCharSets class dbaui::OCharsetDisplay
dbaccess/source/ui/inc/dbtreelistbox.hxx:54
dbaui::DBTreeListBox m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/dbwiz.hxx:58
dbaui::ODbTypeWizDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/dbwizsetup.hxx:63
dbaui::ODbTypeWizDialogSetup m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/directsql.hxx:49
dbaui::DirectSQLDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/FieldControls.hxx:33
dbaui::OPropColumnEditCtrl m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/FieldControls.hxx:47
dbaui::OPropEditCtrl m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/formadapter.hxx:123
dbaui::SbaXFormAdapter m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/GeneralUndo.hxx:32
dbaui::OCommentUndoAction m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/indexfieldscontrol.hxx:36
dbaui::IndexFieldsControl m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/JoinController.hxx:46
dbaui::OJoinController m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/RelationDlg.hxx:38
dbaui::ORelationDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/TableController.hxx:41
dbaui::OTableController m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/TableGrantCtrl.hxx:46
dbaui::OTableGrantControl m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/TokenWriter.hxx:186
dbaui::ORowSetImportExport m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/unoadmin.hxx:40
dbaui::ODatabaseAdministrationDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/unosqlmessage.hxx:35
dbaui::OSQLMessageDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/inc/UserAdminDlg.hxx:48
dbaui::OUserAdminDlg m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/misc/dbsubcomponentcontroller.cxx:127
dbaui::DBSubComponentController_Impl m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/uno/composerdialogs.hxx:44
dbaui::ComposerDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/uno/dbinteraction.hxx:65
dbaui::BasicInteractionHandler m_aModuleClient const class dbaui::OModuleClient
dbaccess/source/ui/uno/textconnectionsettings_uno.cxx:66
dbaui::OTextConnectionSettingsDialog m_aModuleClient class dbaui::OModuleClient
dbaccess/source/ui/uno/unoDirectSql.hxx:43
dbaui::ODirectSQLDialog m_aModuleClient class dbaui::OModuleClient
desktop/source/app/dispatchwatcher.hxx:61
desktop::DispatchWatcher::DispatchRequest aRequestType enum desktop::DispatchWatcher::RequestType
desktop/source/deployment/gui/dp_gui_updatedialog.cxx:227
dp_gui::UpdateDialog::Thread m_abort uno::Reference<task::XAbortChannel>
embeddedobj/source/inc/oleembobj.hxx:119
OleEmbeddedObject m_pOleComponent class OleComponent *
embeddedobj/source/inc/oleembobj.hxx:139
......@@ -278,8 +222,12 @@ extensions/source/propctrlr/propertyhandler.hxx:80
pcr::PropertyHandler m_aEnsureResAccess class pcr::PcrClient
extensions/source/scanner/scanner.hxx:46
ScannerManager maProtector osl::Mutex
filter/source/graphicfilter/eps/eps.cxx:112
filter/inc/gfxtypes.hxx:191
svgi::State meTextDisplayAlign enum svgi::TextAlign
filter/source/graphicfilter/eps/eps.cxx:113
PSWriter pVDev ScopedVclPtrInstance<class VirtualDevice>
filter/source/graphicfilter/icgm/cgm.hxx:59
CGM mpGraphic class Graphic *
filter/source/graphicfilter/icgm/chart.hxx:44
DataNode nBoxX1 sal_Int16
filter/source/graphicfilter/icgm/chart.hxx:45
......@@ -290,214 +238,20 @@ filter/source/graphicfilter/icgm/chart.hxx:47
DataNode nBoxY2 sal_Int16
filter/source/graphicfilter/idxf/dxfreprd.hxx:76
DXFRepresentation aPalette class DXFPalette
filter/source/graphicfilter/itga/itga.cxx:61
TGAExtension sAuthorName char [41]
filter/source/graphicfilter/itga/itga.cxx:62
TGAExtension sAuthorComment char [324]
filter/source/graphicfilter/itga/itga.cxx:63
TGAExtension sDateTimeStamp char [12]
filter/source/graphicfilter/itga/itga.cxx:65
TGAExtension sSoftwareID char [41]
filter/source/msfilter/msoleexp.cxx:132
SvxMSExportOLEObjects::ExportOLEObject(svt::EmbeddedObjectRef &, SotStorage &)::ObjExpType::GlobalNameIds n1 sal_uInt32
filter/source/graphicfilter/itga/itga.cxx:51
TGAFileFooter nSignature sal_uInt32 [4]
filter/source/xsltdialog/xmlfiltersettingsdialog.hxx:71
XMLFilterListBox m_aEnsureResMgr class EnsureResMgr
XMLFilterListBox m_aEnsureResLocale class EnsureResLocale
filter/source/xsltdialog/xmlfiltersettingsdialog.hxx:130
XMLFilterSettingsDialog maEnsureResMgr class EnsureResMgr
XMLFilterSettingsDialog maEnsureResLocale class EnsureResLocale
filter/source/xsltdialog/xmlfiltersettingsdialog.hxx:153
XMLFilterSettingsDialog maModuleOpt class SvtModuleOptions
formula/source/ui/dlg/funcpage.hxx:61
formula::FuncPage m_aModuleClient class formula::OModuleClient
formula/source/ui/dlg/parawin.hxx:47
formula::ParaWin m_aModuleClient class formula::OModuleClient
formula/source/ui/dlg/structpg.hxx:68
formula::StructPage m_aModuleClient class formula::OModuleClient
framework/inc/dispatch/dispatchprovider.hxx:81
framework::DispatchProvider m_aProtocolHandlerCache class framework::HandlerCache
framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx:184
(anonymous namespace)::ModuleUIConfigurationManager::UIElementType aElementsHashMap (anonymous namespace)::ModuleUIConfigurationManager::UIElementDataHashMap
framework/source/uiconfiguration/uiconfigurationmanager.cxx:164
(anonymous namespace)::UIConfigurationManager::UIElementType aElementsHashMap (anonymous namespace)::UIConfigurationManager::UIElementDataHashMap
hwpfilter/source/drawdef.h:69
BAREHWPDOProperty line_pstyle int
hwpfilter/source/drawdef.h:70
BAREHWPDOProperty line_hstyle int
hwpfilter/source/drawdef.h:71
BAREHWPDOProperty line_tstyle int
hwpfilter/source/drawdef.h:72
BAREHWPDOProperty line_color unsigned int
hwpfilter/source/drawdef.h:73
BAREHWPDOProperty line_width hunit
hwpfilter/source/drawdef.h:74
BAREHWPDOProperty fill_color unsigned int
hwpfilter/source/drawdef.h:75
BAREHWPDOProperty pattern_type uint
hwpfilter/source/drawdef.h:76
BAREHWPDOProperty pattern_color unsigned int
hwpfilter/source/drawdef.h:77
BAREHWPDOProperty hmargin hunit
hwpfilter/source/drawdef.h:78
BAREHWPDOProperty vmargin hunit
hwpfilter/source/drawdef.h:79
BAREHWPDOProperty flag uint
hwpfilter/source/drawdef.h:87
GradationProperty fromcolor int
hwpfilter/source/drawdef.h:88
GradationProperty tocolor int
hwpfilter/source/drawdef.h:89
GradationProperty gstyle int
hwpfilter/source/drawdef.h:90
GradationProperty angle int
hwpfilter/source/drawdef.h:91
GradationProperty center_x int
hwpfilter/source/drawdef.h:92
GradationProperty center_y int
hwpfilter/source/drawdef.h:93
GradationProperty nstep int
hwpfilter/source/drawdef.h:101
BitmapProperty offset1 ZZPoint
hwpfilter/source/drawdef.h:102
BitmapProperty offset2 ZZPoint
hwpfilter/source/drawdef.h:103
BitmapProperty szPatternFile char [261]
hwpfilter/source/drawdef.h:104
BitmapProperty pictype char
hwpfilter/source/drawdef.h:112
RotationProperty rot_originx int
hwpfilter/source/drawdef.h:113
RotationProperty rot_originy int
hwpfilter/source/drawdef.h:114
RotationProperty parall ZZParall
hwpfilter/source/drawdef.h:160
HWPDOProperty szPatternFile char [261]
hwpfilter/source/hbox.h:116
Bookmark id hchar [16]
hwpfilter/source/hbox.h:132
DateFormat format hchar [40]
hwpfilter/source/hbox.h:153
DateCode date short [6]
hwpfilter/source/hbox.h:198
CellLine key unsigned char
hwpfilter/source/hbox.h:199
CellLine top unsigned char
hwpfilter/source/hbox.h:200
CellLine bottom unsigned char
hwpfilter/source/hbox.h:201
CellLine left unsigned char
hwpfilter/source/hbox.h:202
CellLine right unsigned char
hwpfilter/source/hbox.h:203
CellLine color short
hwpfilter/source/hbox.h:204
CellLine shade unsigned char
hwpfilter/source/hbox.h:227
Cell linetype unsigned char [4]
hwpfilter/source/hbox.h:261
FBoxStyle margin short [3][4]
hwpfilter/source/hbox.h:334
TxtBox cap_len short
hwpfilter/source/hbox.h:335
TxtBox next_box short
hwpfilter/source/hbox.h:536
PicDefFile path char [256]
hwpfilter/source/hbox.h:537
PicDefFile img void *
hwpfilter/source/hbox.h:538
PicDefFile skipfind _Bool
hwpfilter/source/hbox.h:546
PicDefEmbed embname char [16]
hwpfilter/source/hbox.h:554
PicDefOle embname char [16]
hwpfilter/source/hbox.h:555
PicDefOle hwpole void *
hwpfilter/source/hbox.h:574
PicDefUnknown path char [256]
hwpfilter/source/hbox.h:579
(anonymous) picfile struct PicDefFile
hwpfilter/source/hbox.h:580
(anonymous) picembed struct PicDefEmbed
hwpfilter/source/hbox.h:581
(anonymous) picole struct PicDefOle
hwpfilter/source/hbox.h:583
(anonymous) picun struct PicDefUnknown
hwpfilter/source/hbox.h:597
Picture reserved hchar [2]
hwpfilter/source/hbox.h:627
Picture reserved3 char [9]
hwpfilter/source/hbox.h:649
Line reserved hchar [2]
hwpfilter/source/hbox.h:668
Hidden reserved hchar [2]
hwpfilter/source/hbox.h:671
Hidden info unsigned char [8]
hwpfilter/source/hbox.h:685
HeaderFooter reserved hchar [2]
hwpfilter/source/hbox.h:688
HeaderFooter info unsigned char [8]
hwpfilter/source/hbox.h:715
Footnote reserved hchar [2]
hwpfilter/source/hbox.h:718
Footnote info unsigned char [8]
hwpfilter/source/hbox.h:834
MailMerge field_name unsigned char [20]
hwpfilter/source/hbox.h:850
Compose compose hchar [3]
hwpfilter/source/hbox.h:964
Outline number unsigned short [7]
hwpfilter/source/hbox.h:968
Outline user_shape hchar [7]
hwpfilter/source/hbox.h:972
Outline deco hchar [7][2]
hwpfilter/source/hinfo.h:72
PaperBackInfo reserved1 char [8]
hwpfilter/source/hinfo.h:76
PaperBackInfo reserved2 char [8]
hwpfilter/source/hinfo.h:77
PaperBackInfo filename char [261]
hwpfilter/source/hinfo.h:78
PaperBackInfo color unsigned char [3]
hwpfilter/source/hinfo.h:81
PaperBackInfo reserved3 char [27]
hwpfilter/source/hinfo.h:111
DocChainInfo chain_filename unsigned char [40]
hwpfilter/source/hinfo.h:126
HWPSummary title unsigned short [56]
hwpfilter/source/hinfo.h:127
HWPSummary subject unsigned short [56]
hwpfilter/source/hinfo.h:128
HWPSummary author unsigned short [56]
hwpfilter/source/hinfo.h:129
HWPSummary date unsigned short [56]
hwpfilter/source/hinfo.h:130
HWPSummary keyword unsigned short [2][56]
hwpfilter/source/hinfo.h:131
HWPSummary etc unsigned short [3][56]
hwpfilter/source/hinfo.h:170
HWPInfo reserved1 unsigned char [4]
hwpfilter/source/hinfo.h:175
HWPInfo annotation unsigned char [24]
hwpfilter/source/hinfo.h:192
HWPInfo bordermargin hunit [4]
hwpfilter/source/hinfo.h:228
CharShape font unsigned char [7]
hwpfilter/source/hinfo.h:229
CharShape ratio unsigned char [7]
hwpfilter/source/hinfo.h:230
CharShape space signed char [7]
hwpfilter/source/hinfo.h:231
CharShape color unsigned char [2]
hwpfilter/source/hinfo.h:234
CharShape reserved unsigned char [4]
hwpfilter/source/hpara.h:70
LineInfo softbreak unsigned short
hwpfilter/source/htags.h:33
EmPicture type char [16]
hwpfilter/source/htags.h:47
HyperText bookmark hchar [16]
hwpfilter/source/htags.h:48
HyperText macro char [325]
hwpfilter/source/htags.h:50
HyperText reserve char [3]
i18npool/inc/textconversion.hxx:80
com::sun::star::i18n::(anonymous) code sal_Unicode
i18npool/inc/textconversion.hxx:81
......@@ -512,32 +266,22 @@ include/basic/sbstar.hxx:56
StarBASIC aErrorHdl Link<class StarBASIC *, _Bool>
include/basic/sbstar.hxx:57
StarBASIC aBreakHdl Link<class StarBASIC *, enum BasicDebugFlags>
include/canvas/propertysethelper.hxx:57
canvas::PropertySetHelper::Callbacks getter canvas::PropertySetHelper::GetterType
include/canvas/propertysethelper.hxx:58
canvas::PropertySetHelper::Callbacks setter canvas::PropertySetHelper::SetterType
include/connectivity/DriversConfig.hxx:76
connectivity::DriversConfig m_aNode connectivity::DriversConfig::OSharedConfigNode
include/connectivity/sdbcx/VDescriptor.hxx:56
connectivity::sdbcx::ODescriptor m_aCase comphelper::UStringMixEqual
include/drawinglayer/primitive2d/textlayoutdevice.hxx:61
drawinglayer::primitive2d::TextLayouterDevice maSolarGuard class SolarMutexGuard
include/editeng/brushitem.hxx:53
include/editeng/brushitem.hxx:52
SvxBrushItem maSecOptions class SvtSecurityOptions
include/editeng/numitem.hxx:318
SvxNodeNum nLevelVal sal_uInt16 [10]
include/filter/msfilter/svdfppt.hxx:210
PptSlideLayoutAtom aPlaceholderId enum PptPlaceholder [8]
include/filter/msfilter/svdfppt.hxx:691
PPTExtParaSheet aExtParaLevel struct PPTExtParaLevel [5]
include/filter/msfilter/svdfppt.hxx:865
ImplPPTParaPropSet nDontKnow1 sal_uInt32
include/filter/msfilter/svdfppt.hxx:866
ImplPPTParaPropSet nDontKnow2 sal_uInt32
include/filter/msfilter/svdfppt.hxx:867
ImplPPTParaPropSet nDontKnow2bit06 sal_uInt16
include/jvmfwk/framework.hxx:241
JavaInfo nFeatures sal_uInt64
include/jvmfwk/framework.hxx:250
JavaInfo nRequirements sal_uInt64
include/LibreOfficeKit/LibreOfficeKitGtk.h:33
_LOKDocView aDrawingArea GtkDrawingArea
include/LibreOfficeKit/LibreOfficeKitGtk.h:38
......@@ -554,6 +298,10 @@ include/registry/refltype.hxx:68
RTUik m_Data4 sal_uInt32
include/registry/refltype.hxx:69
RTUik m_Data5 sal_uInt32
include/sfx2/charmapcontrol.hxx:43
SfxCharmapCtrl m_pFavCharView VclPtr<class SvxCharView> [16]
include/sfx2/frame.hxx:100
SfxFrame pChildArr class SfxFrameArr_Impl *
include/sfx2/msg.hxx:105
SfxType createSfxPoolItemFunc std::function<SfxPoolItem *(void)>
include/sfx2/msg.hxx:106
......@@ -570,46 +318,6 @@ include/sfx2/sidebar/ResourceManager.hxx:103
sfx2::sidebar::ResourceManager maMiscOptions class SvtMiscOptions
include/svl/ondemand.hxx:59
OnDemandLocaleDataWrapper aSysLocale class SvtSysLocale
include/svl/svdde.hxx:60
DdeData xImp std::unique_ptr<DdeDataImp>
include/svl/svdde.hxx:95
DdeTransaction pName class DdeString *
include/svl/svdde.hxx:96
DdeTransaction nType short
include/svl/svdde.hxx:97
DdeTransaction nId sal_IntPtr
include/svl/svdde.hxx:98
DdeTransaction nTime sal_IntPtr
include/svl/svdde.hxx:101
DdeTransaction bBusy _Bool
include/svl/svdde.hxx:180
DdeConnection aTransactions std::vector<DdeTransaction *>
include/svl/svdde.hxx:181
DdeConnection pService class DdeString *
include/svl/svdde.hxx:182
DdeConnection pTopic class DdeString *
include/svl/svdde.hxx:183
DdeConnection pImp struct DdeImp *
include/svl/svdde.hxx:208
DdeItem pName class DdeString *
include/svl/svdde.hxx:209
DdeItem pMyTopic class DdeTopic *
include/svl/svdde.hxx:210
DdeItem pImpData class DdeItemImp *
include/svl/svdde.hxx:213
DdeItem nType sal_uInt8
include/svl/svdde.hxx:259
DdeTopic pName class DdeString *
include/svl/svdde.hxx:297
DdeService aFormats DdeFormats
include/svl/svdde.hxx:298
DdeService pSysTopic class DdeTopic *
include/svl/svdde.hxx:299
DdeService pName class DdeString *
include/svl/svdde.hxx:300
DdeService pConv ConvList *
include/svl/svdde.hxx:301
DdeService nStatus short
include/svtools/editsyntaxhighlighter.hxx:33
MultiLineEditSyntaxHighlight m_aColorConfig svtools::ColorConfig
include/svx/svdmark.hxx:142
......@@ -620,14 +328,16 @@ include/svx/svdobj.hxx:973
SdrObjUserDataCreatorParams nInventor enum SdrInventor
include/svx/svdobj.hxx:974
SdrObjUserDataCreatorParams nObjIdentifier sal_uInt16
include/svx/svdobj.hxx:975
SdrObjUserDataCreatorParams pObject class SdrObject *
include/svx/svdundo.hxx:150
SdrUndoAttrObj pRepeatSet class SfxItemSet *
include/test/sheet/xdatapilottable.hxx:31
apitest::XDataPilotTable xCellForChange css::uno::Reference<css::table::XCell>
include/test/sheet/xdatapilottable.hxx:32
apitest::XDataPilotTable xCellForCheck css::uno::Reference<css::table::XCell>
include/test/sheet/xnamedranges.hxx:38
apitest::XNamedRanges xSheet css::uno::Reference<css::sheet::XSpreadsheet>
include/tools/inetmime.hxx:66
INetContentTypeParameter m_bConverted _Bool
include/vcl/bitmap.hxx:175
BmpFilterParam::(anonymous) mnSepiaPercent sal_uInt16
include/vcl/bitmap.hxx:176
......@@ -638,20 +348,100 @@ include/vcl/filter/pdfdocument.hxx:173
vcl::filter::PDFNameElement m_nLength sal_uInt64
include/vcl/opengl/OpenGLContext.hxx:57
OpenGLCapabilitySwitch mbLimitedShaderRegisters _Bool
include/vcl/pdfwriter.hxx:550
vcl::PDFWriter::PDFSignContext m_pDerEncoded sal_Int8 *
include/vcl/pdfwriter.hxx:552
vcl::PDFWriter::PDFSignContext m_nDerEncoded sal_Int32
include/vcl/pdfwriter.hxx:554
vcl::PDFWriter::PDFSignContext m_pByteRange1 void *
include/vcl/pdfwriter.hxx:556
vcl::PDFWriter::PDFSignContext m_nByteRange1 sal_Int32
include/vcl/pdfwriter.hxx:558
vcl::PDFWriter::PDFSignContext m_pByteRange2 void *
include/vcl/pdfwriter.hxx:560
vcl::PDFWriter::PDFSignContext m_nByteRange2 sal_Int32
include/vcl/pdfwriter.hxx:561
vcl::PDFWriter::PDFSignContext m_aSignTSA class rtl::OUString
include/vcl/pdfwriter.hxx:562
vcl::PDFWriter::PDFSignContext m_aSignPassword class rtl::OUString