compilerplugins/clang/fieldcast.cxx                           |  199 +
 compilerplugins/clang/fieldcast.py                            |   71 
 compilerplugins/clang/fieldcast.results                       | 1038 ++++++++++
 compilerplugins/clang/test/fieldcast.cxx                      |   34 
 solenv/CompilerTest_compilerplugins_clang.mk                  |    1 
 vcl/source/window/menu.cxx                                    |    4 
 vcl/source/window/menubarwindow.cxx                           |    2 
 vcl/source/window/menufloatingwindow.cxx                      |    2 
 vcl/source/window/menuitemlist.hxx                            |    2 
 xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx |   12 
 xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx |    2 
 11 files changed, 1355 insertions(+), 12 deletions(-)

New commits:
commit 3b8e58b3bea6fd67cb7c5dc25115a32ca6975117
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Nov 7 13:29:51 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Nov 8 06:50:35 2023 +0100

    loplugin:fieldcast in vcl
    
    Change-Id: Ib6300ae7d8081a71f6dd5238b14f4114479862b4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159083
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 60673fbe434e..3a66b962ebd6 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -747,7 +747,7 @@ void Menu::SetPopupMenu( sal_uInt16 nItemId, PopupMenu* 
pMenu )
         return;
 
     // same menu, nothing to do
-    if ( static_cast<PopupMenu*>(pData->pSubMenu.get()) == pMenu )
+    if ( pData->pSubMenu.get() == pMenu )
         return;
 
     // remove old menu
@@ -779,7 +779,7 @@ PopupMenu* Menu::GetPopupMenu( sal_uInt16 nItemId ) const
     MenuItemData* pData = pItemList->GetData( nItemId );
 
     if ( pData )
-        return static_cast<PopupMenu*>(pData->pSubMenu.get());
+        return pData->pSubMenu.get();
     else
         return nullptr;
 }
diff --git a/vcl/source/window/menubarwindow.cxx 
b/vcl/source/window/menubarwindow.cxx
index e77b600ea445..c52b0cf6787a 100644
--- a/vcl/source/window/menubarwindow.cxx
+++ b/vcl/source/window/menubarwindow.cxx
@@ -287,7 +287,7 @@ void MenuBarWindow::ImplCreatePopup( bool bPreSelectFirst )
          ( pItemData->pSubMenu != m_pActivePopup )) )
         return;
 
-    m_pActivePopup = static_cast<PopupMenu*>(pItemData->pSubMenu.get());
+    m_pActivePopup = pItemData->pSubMenu.get();
     tools::Long nX = 0;
     MenuItemData* pData = nullptr;
     for ( sal_uLong n = 0; n < m_nHighlightedItem; n++ )
diff --git a/vcl/source/window/menufloatingwindow.cxx 
b/vcl/source/window/menufloatingwindow.cxx
index 3fb13ee1deee..95a0d3f4d02a 100644
--- a/vcl/source/window/menufloatingwindow.cxx
+++ b/vcl/source/window/menufloatingwindow.cxx
@@ -336,7 +336,7 @@ IMPL_LINK( MenuFloatingWindow, HighlightChanged, Timer*, 
pTimer, void )
     if ( !(pItemData->bEnabled && pItemData->pSubMenu && 
pItemData->pSubMenu->GetItemCount() && ( pItemData->pSubMenu != pActivePopup )) 
)
         return;
 
-    pActivePopup = static_cast<PopupMenu*>(pItemData->pSubMenu.get());
+    pActivePopup = pItemData->pSubMenu.get();
     tools::Long nY = nScrollerHeight+ImplGetStartY();
     MenuItemData* pData = nullptr;
     for ( sal_uLong n = 0; n < nHighlightedItem; n++ )
diff --git a/vcl/source/window/menuitemlist.hxx 
b/vcl/source/window/menuitemlist.hxx
index 4cd89b478577..fc25a402922d 100644
--- a/vcl/source/window/menuitemlist.hxx
+++ b/vcl/source/window/menuitemlist.hxx
@@ -35,7 +35,7 @@ struct MenuItemData
     sal_uInt16      nId;                    // SV Id
     MenuItemType    eType;                  // MenuItem-Type
     MenuItemBits    nBits;                  // MenuItem-Bits
-    VclPtr<Menu>    pSubMenu;               // Pointer to SubMenu
+    VclPtr<PopupMenu> pSubMenu;             // Pointer to SubMenu
     OUString        aText;                  // Menu-Text
     SalLayoutGlyphs aTextGlyphs;            ///< Text layout of aText.
     OUString        aHelpText;              // Help-String
commit 74f884d48ed27e1ce861620a57802ad156a86d15
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Nov 7 12:50:17 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Nov 8 06:50:24 2023 +0100

    new loplugin:fieldcast
    
    new plugin to look for class fields that are always cast to some
    subtype, which indicates that they should probably just be declared to
    be that subtype.
    
    Perform one of the suggested improvements in xmlsecurity/
    
    Change-Id: Ia68df422c37f05cbcf9c02ba5d0853f8eca4f120
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159063
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/compilerplugins/clang/fieldcast.cxx 
b/compilerplugins/clang/fieldcast.cxx
new file mode 100644
index 000000000000..7f2b728e8e22
--- /dev/null
+++ b/compilerplugins/clang/fieldcast.cxx
@@ -0,0 +1,199 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#if !defined _WIN32 //TODO, #include <sys/file.h>
+
+#include <cassert>
+#include <string>
+#include <iostream>
+#include <fstream>
+#include <unordered_set>
+#include <vector>
+#include <algorithm>
+#include <sys/file.h>
+#include <unistd.h>
+
+#include "config_clang.h"
+
+#include "plugin.hxx"
+#include "compat.hxx"
+#include "check.hxx"
+
+#include "clang/AST/ParentMapContext.h"
+
+/**
+  Look for class fields that are always cast to some subtype,
+  which indicates that they should probably just be declared to be that 
subtype.
+
+  TODO add checking for dynamic_cast/static_cast on
+      unique_ptr
+      shared_ptr
+*/
+
+namespace
+{
+struct MyFieldInfo
+{
+    std::string parentClass;
+    std::string fieldName;
+    std::string fieldType;
+    std::string sourceLocation;
+};
+
+// try to limit the voluminous output a little
+static std::unordered_multimap<const FieldDecl*, const CXXRecordDecl*> castMap;
+
+class FieldCast : public loplugin::FilteringPlugin<FieldCast>
+{
+public:
+    explicit FieldCast(loplugin::InstantiationData const& data)
+        : FilteringPlugin(data)
+    {
+    }
+
+    virtual void run() override;
+
+    bool VisitCXXStaticCastExpr(const CXXStaticCastExpr*);
+    bool VisitCXXDynamicCastExpr(const CXXDynamicCastExpr*);
+
+private:
+    MyFieldInfo niceName(const FieldDecl*);
+    void checkCast(const CXXNamedCastExpr*);
+};
+
+void FieldCast::run()
+{
+    handler.enableTreeWideAnalysisMode();
+
+    TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
+
+    if (!isUnitTestMode())
+    {
+        // 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;
+        output.reserve(64 * 1024);
+        for (const auto& pair : castMap)
+        {
+            MyFieldInfo s = niceName(pair.first);
+            output += "cast:\t" + s.parentClass //
+                      + "\t" + s.fieldName //
+                      + "\t" + s.fieldType //
+                      + "\t" + s.sourceLocation //
+                      + "\t" + pair.second->getQualifiedNameAsString() //
+                      + "\n";
+        }
+        std::ofstream myfile;
+        myfile.open(WORKDIR "/loplugin.fieldcast.log", std::ios::app | 
std::ios::out);
+        myfile << output;
+        myfile.close();
+    }
+    else
+    {
+        for (const auto& pair : castMap)
+            report(DiagnosticsEngine::Warning, "cast %0", 
pair.first->getBeginLoc())
+                << pair.second->getQualifiedNameAsString();
+    }
+}
+
+MyFieldInfo FieldCast::niceName(const FieldDecl* fieldDecl)
+{
+    MyFieldInfo aInfo;
+
+    const RecordDecl* recordDecl = fieldDecl->getParent();
+
+    if (const CXXRecordDecl* cxxRecordDecl = 
dyn_cast<CXXRecordDecl>(recordDecl))
+    {
+        if (cxxRecordDecl->getTemplateInstantiationPattern())
+            cxxRecordDecl = cxxRecordDecl->getTemplateInstantiationPattern();
+        aInfo.parentClass = cxxRecordDecl->getQualifiedNameAsString();
+    }
+    else
+    {
+        aInfo.parentClass = recordDecl->getQualifiedNameAsString();
+    }
+
+    aInfo.fieldName = fieldDecl->getNameAsString();
+    // sometimes the name (if it's an anonymous thing) contains the full path 
of the build folder, which we don't need
+    size_t idx = aInfo.fieldName.find(SRCDIR);
+    if (idx != std::string::npos)
+    {
+        aInfo.fieldName = aInfo.fieldName.replace(idx, strlen(SRCDIR), "");
+    }
+    aInfo.fieldType = fieldDecl->getType().getAsString();
+
+    SourceLocation expansionLoc
+        = 
compiler.getSourceManager().getExpansionLoc(fieldDecl->getLocation());
+    StringRef name = getFilenameOfLocation(expansionLoc);
+    aInfo.sourceLocation
+        = std::string(name.substr(strlen(SRCDIR) + 1)) + ":"
+          + 
std::to_string(compiler.getSourceManager().getSpellingLineNumber(expansionLoc));
+    loplugin::normalizeDotDotInFilePath(aInfo.sourceLocation);
+
+    return aInfo;
+}
+
+bool FieldCast::VisitCXXDynamicCastExpr(const CXXDynamicCastExpr* expr)
+{
+    checkCast(expr);
+    return true;
+}
+
+bool FieldCast::VisitCXXStaticCastExpr(const CXXStaticCastExpr* expr)
+{
+    checkCast(expr);
+    return true;
+}
+
+void FieldCast::checkCast(const CXXNamedCastExpr* expr)
+{
+    if (ignoreLocation(expr))
+        return;
+    if 
(isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(expr->getBeginLoc())))
+        return;
+    const QualType exprType = expr->getTypeAsWritten();
+    if (!exprType->getPointeeCXXRecordDecl())
+        return;
+    const Expr* subExpr = compat::getSubExprAsWritten(expr);
+    if (const MemberExpr* memberExpr = 
dyn_cast_or_null<MemberExpr>(subExpr->IgnoreImplicit()))
+    {
+        const FieldDecl* fieldDecl = 
dyn_cast_or_null<FieldDecl>(memberExpr->getMemberDecl());
+        if (!fieldDecl)
+            return;
+        if (isInUnoIncludeFile(
+                
compiler.getSourceManager().getSpellingLoc(fieldDecl->getBeginLoc())))
+            return;
+        castMap.emplace(fieldDecl, exprType->getPointeeCXXRecordDecl());
+    }
+    else if (const CXXMemberCallExpr* memberCallExpr
+             = dyn_cast_or_null<CXXMemberCallExpr>(subExpr->IgnoreImplicit()))
+    {
+        if (!memberCallExpr->getMethodDecl()->getIdentifier()
+            || memberCallExpr->getMethodDecl()->getName() != "get")
+            return;
+        const MemberExpr* memberExpr = dyn_cast_or_null<MemberExpr>(
+            memberCallExpr->getImplicitObjectArgument()->IgnoreImplicit());
+        if (!memberExpr)
+            return;
+        const FieldDecl* fieldDecl = 
dyn_cast_or_null<FieldDecl>(memberExpr->getMemberDecl());
+        if (!fieldDecl)
+            return;
+        if (isInUnoIncludeFile(
+                
compiler.getSourceManager().getSpellingLoc(fieldDecl->getBeginLoc())))
+            return;
+        castMap.emplace(fieldDecl, exprType->getPointeeCXXRecordDecl());
+    }
+}
+
+loplugin::Plugin::Registration<FieldCast> X("fieldcast", false);
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/compilerplugins/clang/fieldcast.py 
b/compilerplugins/clang/fieldcast.py
new file mode 100755
index 000000000000..cc6d3f3e5b3c
--- /dev/null
+++ b/compilerplugins/clang/fieldcast.py
@@ -0,0 +1,71 @@
+#!/usr/bin/python3
+
+import re
+import io
+
+definitionSet = set()
+definitionToSourceLocationMap = dict()
+definitionToTypeMap = dict()
+castMap = dict()
+
+# 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.
+normalizeTypeParamsRegex = re.compile(r"type-parameter-\d+-\d+")
+def normalizeTypeParams( line ):
+    return normalizeTypeParamsRegex.sub("type-parameter-?-?", line)
+
+
+with io.open("workdir/loplugin.fieldcast.log", "r", buffering=1024*1024) as 
txt:
+    for line in txt:
+        tokens = line.strip().split("\t")
+        if tokens[0] == "cast:":
+            fieldInfo = (normalizeTypeParams(tokens[1]), tokens[2])
+            fieldType = tokens[3]
+            srcLoc = tokens[4]
+            castToType = tokens[5]
+            # ignore external source code
+            if srcLoc.startswith("external/"):
+                continue
+            # ignore build folder
+            if srcLoc.startswith("workdir/"):
+                continue
+            definitionSet.add(fieldInfo)
+            definitionToTypeMap[fieldInfo] = fieldType
+            definitionToSourceLocationMap[fieldInfo] = srcLoc
+
+            if not (fieldInfo in castMap):
+                castMap[fieldInfo] = castToType
+            elif castMap[fieldInfo] != "": # if we are not ignoring it
+                # if it is cast to more than one type, mark it as being ignored
+                if castMap[fieldInfo] != castToType:
+                    castMap[fieldInfo] = ""
+        else:
+            print( "unknown line: " + line)
+
+outputSet = set()
+for k, v in castMap.items():
+    if v == "":
+        continue
+    srcLoc = definitionToSourceLocationMap[k]
+    outputSet.add((k[0] + " " + k[1] + " " + definitionToTypeMap[k], srcLoc, 
v))
+
+# sort the results using a "natural order" so sequences like 
[item1,item2,item10] sort nicely
+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)]
+# sort by both the source-line and the datatype, so the output file ordering 
is stable
+# when we have multiple fieldds declared on the same source line
+def v_sort_key(v):
+    return natural_sort_key(v[1]) + [v[0]]
+
+# sort results by name and line number
+tmp1list = sorted(outputSet, key=lambda v: v_sort_key(v))
+
+# print out the results
+with open("compilerplugins/clang/fieldcast.results", "wt") as f:
+    for t in tmp1list:
+        f.write( t[1] + "\n" )
+        f.write( "    " + t[0] + "\n" )
+        f.write( "    " + t[2] + "\n" )
+
+
diff --git a/compilerplugins/clang/fieldcast.results 
b/compilerplugins/clang/fieldcast.results
new file mode 100644
index 000000000000..a1ef6accb82b
--- /dev/null
+++ b/compilerplugins/clang/fieldcast.results
@@ -0,0 +1,1038 @@
+accessibility/inc/extended/accessibletabbarbase.hxx:53
+    accessibility::AccessibleTabBarBase m_pTabBar VclPtr<TabBar>
+    vcl::Window
+basctl/source/inc/accessibledialogwindow.hxx:67
+    basctl::AccessibleDialogWindow m_pDialogWindow VclPtr<basctl::DialogWindow>
+    vcl::Window
+basctl/source/inc/basidesh.hxx:87
+    basctl::Shell pLayout VclPtr<Layout>
+    basctl::ModulWindowLayout
+basctl/source/inc/basidesh.hxx:97
+    basctl::Shell m_xLibListener 
css::uno::Reference<css::container::XContainerListener>
+    basctl::ContainerListenerImpl
+basic/source/inc/errobject.hxx:27
+    SbxErrObject m_xErr css::uno::Reference<ooo::vba::XErrObject>
+    ErrObject
+basic/source/inc/runtime.hxx:68
+    SbiForStack refEnd SbxVariableRef
+    BasicCollection
+basic/source/inc/runtime.hxx:220
+    SbiRuntime pMod SbModule *
+    SbClassModuleObject
+bridges/source/jni_uno/jni_info.h:96
+    jni_uno::JNI_compound_type_info m_base const JNI_type_info *
+    jni_uno::JNI_compound_type_info
+bxml/parser.h:258
+    _xmlParserCtxt _private void *
+    DOM::CDocumentBuilder
+bxml/xpath.h:338
+    _xmlXPathContext funcLookupData void *
+    CLibxml2XFormsExtension
+chart2/inc/ChartModel.hxx:133
+    chart::ChartModel mxChartView rtl::Reference<ChartView>
+    cppu::OWeakObject
+chart2/inc/ChartModel.hxx:176
+    chart::ChartModel m_xXMLNamespaceMap rtl::Reference< 
::chart::NameContainer>
+    cppu::OWeakObject
+chart2/inc/ChartView.hxx:213
+    chart::ChartView m_xDrawPage rtl::Reference<SvxDrawPage>
+    cppu::OWeakObject
+chart2/source/controller/dialogs/tp_ChartType.hxx:77
+    chart::ChartTypeTabPage m_xChartModel rtl::Reference< ::chart::ChartModel>
+    cppu::OWeakObject
+chart2/source/controller/inc/ChartDocumentWrapper.hxx:165
+    chart::wrapper::ChartDocumentWrapper m_xChartView rtl::Reference<ChartView>
+    cppu::OWeakObject
+chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx:108
+    chart::CreationWizardUnoDlg m_xParentWindow 
css::uno::Reference<css::awt::XWindow>
+    weld::TransportAsXWindow
+chart2/source/controller/inc/SelectionHelper.hxx:110
+    chart::SelectionHelper m_pMarkObj SdrObject *
+    SdrPathObj
+chart2/source/controller/sidebar/ChartTypePanel.hxx:105
+    chart::sidebar::ChartTypePanel m_xChartModel rtl::Reference< 
::chart::ChartModel>
+    cppu::OWeakObject
+chart2/source/inc/Diagram.hxx:312
+    chart::Diagram::tTemplateWithServiceName xChartTypeTemplate 
rtl::Reference< ::chart::ChartTypeTemplate>
+    cppu::OWeakObject
+chart2/source/view/inc/PlotterBase.hxx:75
+    chart::PlotterBase m_pPosHelper PlottingPositionHelper *
+    chart::PolarPlottingPositionHelper
+comphelper/source/eventattachermgr/eventattachermgr.cxx:143
+    comphelper::(anonymous namespace)::AttacherAllListener_Impl mxManager 
rtl::Reference<ImplEventAttacherManager>
+    cppu::OWeakObject
+configmgr/source/valueparser.hxx:76
+    configmgr::ValueParser node_ rtl::Reference<Node>
+    configmgr::PropertyNode
+configmgr/source/xcsparser.hxx:80
+    configmgr::XcsParser::Element node rtl::Reference<Node>
+    configmgr::SetNode
+cui/source/inc/cfg.hxx:407
+    SvxConfigPage m_xContentsListBox std::unique_ptr<SvxMenuEntriesListBox>
+    SvxNotebookbarEntriesListBox
+cui/source/inc/cuitabarea.hxx:95
+    SvxAreaTabDialog mpNewColorList XColorListRef
+    XPropertyList
+cui/source/inc/cuitabarea.hxx:97
+    SvxAreaTabDialog mpNewGradientList XGradientListRef
+    XPropertyList
+cui/source/inc/cuitabarea.hxx:99
+    SvxAreaTabDialog mpNewHatchingList XHatchListRef
+    XPropertyList
+cui/source/inc/cuitabarea.hxx:101
+    SvxAreaTabDialog mpNewBitmapList XBitmapListRef
+    XPropertyList
+cui/source/inc/cuitabarea.hxx:103
+    SvxAreaTabDialog mpNewPatternList XPatternListRef
+    XPropertyList
+cui/source/inc/cuitabline.hxx:42
+    SvxLineTabDialog mpNewColorList XColorListRef
+    XPropertyList
+cui/source/inc/cuitabline.hxx:44
+    SvxLineTabDialog pNewDashList XDashListRef
+    XPropertyList
+cui/source/inc/cuitabline.hxx:46
+    SvxLineTabDialog pNewLineEndList XLineEndListRef
+    XPropertyList
+cui/source/inc/cuitabline.hxx:321
+    SvxLineEndDefTabPage pPolyObj const SdrObject *
+    SdrPathObj
+cui/source/inc/newtabledlg.hxx:40
+    SvxNewTableDialogWrapper m_xDlg std::shared_ptr<weld::DialogController>
+    SvxNewTableDialog
+cui/source/options/optcolor.cxx:270
+    (anonymous namespace)::ColorConfigWindow_Impl::Entry m_xText 
std::unique_ptr<weld::Widget>
+    weld::Toggleable
+cui/source/options/treeopt.cxx:424
+    OptionsPageInfo m_xPage std::unique_ptr<SfxTabPage>
+    SvxDefaultColorOptPage
+dbaccess/source/core/api/resultset.hxx:73
+    dbaccess::OResultSet m_pColumns std::unique_ptr<OColumns>
+    com::sun::star::container::XNameAccess
+dbaccess/source/core/dataaccess/documentdefinition.cxx:158
+    dbaccess::(anonymous namespace)::OEmbedObjectHolder m_pDefinition 
ODocumentDefinition *
+    cppu::OWeakObject
+dbaccess/source/filter/xml/xmlStyleImport.hxx:35
+    dbaxml::OTableStyleContext pStyles SvXMLStylesContext *
+    dbaxml::OTableStylesContext
+dbaccess/source/ui/app/AppDetailView.hxx:105
+    dbaui::OApplicationDetailView m_xControlHelper 
std::shared_ptr<OChildWindow>
+    dbaui::OAppDetailPageHelper
+dbaccess/source/ui/inc/brwctrlr.hxx:102
+    dbaui::SbaXDataBrowserController m_xFormControllerImpl 
rtl::Reference<FormControllerImpl>
+    cppu::OWeakObject
+dbaccess/source/ui/inc/RelationDlg.hxx:34
+    dbaui::ORelationDialog m_pConnData TTableConnectionData::value_type
+    dbaui::ORelationTableConnectionData
+dbaccess/source/ui/inc/RelationDlg.hxx:35
+    dbaui::ORelationDialog m_pOrigConnData TTableConnectionData::value_type
+    dbaui::ORelationTableConnectionData
+dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx:32
+    dbaui::OQueryDesignUndoAction m_pOwner VclPtr<OJoinTableView>
+    dbaui::OQueryTableView
+dbaccess/source/ui/querydesign/querydlg.hxx:37
+    dbaui::DlgQryJoin m_pConnData TTableConnectionData::value_type
+    dbaui::OQueryTableConnectionData
+editeng/source/editeng/impedit.hxx:268
+    ImpEditView mpViewShell OutlinerViewShell *
+    SfxViewShell
+editeng/source/editeng/impedit.hxx:270
+    ImpEditView mpOtherShell OutlinerViewShell *
+    SfxViewShell
+editeng/source/editeng/impedit.hxx:506
+    ImpEditEngine pEditEngine EditEngine *
+    OutlinerEditEng
+extensions/source/scanner/scanunx.cxx:127
+    (anonymous namespace)::ScannerThread m_pManager ScannerManager *
+    cppu::OWeakObject
+extensions/source/update/check/updatecheck.hxx:164
+    UpdateCheck m_pThread WorkerThread *
+    (anonymous namespace)::UpdateCheckThread
+forms/source/component/EventThread.hxx:60
+    frm::OComponentEventThread m_xComp rtl::Reference< 
::cppu::OComponentHelper>
+    com::sun::star::uno::XWeak
+forms/source/xforms/binding.hxx:97
+    xforms::Binding mxModel css::uno::Reference<css::xforms::XModel>
+    xforms::Model
+fpicker/source/office/iodlgimp.hxx:115
+    SvtExpFileDlg_Impl m_xFtFileName std::unique_ptr<weld::Label>
+    weld::Widget
+fpicker/source/office/iodlgimp.hxx:118
+    SvtExpFileDlg_Impl m_xSharedLabel std::unique_ptr<weld::Label>
+    weld::Widget
+fpicker/source/office/iodlgimp.hxx:119
+    SvtExpFileDlg_Impl m_xSharedListBox std::unique_ptr<weld::ComboBox>
+    weld::Widget
+framework/inc/services/layoutmanager.hxx:253
+    framework::LayoutManager m_xMenuBar 
css::uno::Reference<css::ui::XUIElement>
+    framework::MenuBarWrapper
+framework/inc/services/layoutmanager.hxx:256
+    framework::LayoutManager m_xProgressBarBackup 
css::uno::Reference<css::ui::XUIElement>
+    framework::ProgressBarWrapper
+framework/inc/uielement/addonstoolbarwrapper.hxx:50
+    framework::AddonsToolBarWrapper m_xToolBarManager 
css::uno::Reference<css::lang::XComponent>
+    framework::ToolBarManager
+framework/inc/uielement/menubarmanager.hxx:146
+    framework::MenuBarManager::MenuItemHandler xSubMenuManager 
css::uno::Reference<css::frame::XStatusListener>
+    framework::MenuBarManager
+framework/inc/uielement/menubarwrapper.hxx:67
+    framework::MenuBarWrapper m_xMenuBarManager 
css::uno::Reference<css::lang::XComponent>
+    framework::MenuBarManager
+framework/inc/uielement/statusbarwrapper.hxx:50
+    framework::StatusBarWrapper m_xStatusBarManager 
css::uno::Reference<css::lang::XComponent>
+    framework::StatusBarManager
+framework/inc/uielement/toolbarwrapper.hxx:78
+    framework::ToolBarWrapper m_xToolBarManager 
css::uno::Reference<css::lang::XComponent>
+    framework::ToolBarManager
+framework/inc/uielement/uielement.hxx:89
+    framework::UIElement m_xUIElement css::uno::Reference<css::ui::XUIElement>
+    framework::AddonsToolBarWrapper
+framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx:222
+    (anonymous namespace)::ModuleUIConfigurationManager m_xModuleImageManager 
rtl::Reference<ImageManager>
+    cppu::OWeakObject
+framework/source/uiconfiguration/uiconfigurationmanager.cxx:199
+    (anonymous namespace)::UIConfigurationManager m_xImageManager 
rtl::Reference<ImageManager>
+    cppu::OWeakObject
+i18npool/inc/calendarImpl.hxx:103
+    i18npool::CalendarImpl xCalendar css::uno::Reference<css::i18n::XCalendar4>
+    i18npool::Calendar_gregorian
+include/basegfx/DrawCommands.hxx:121
+    gfx::DrawRectangle mpFillGradient std::shared_ptr<GradientInfo>
+    gfx::LinearGradientInfo
+include/basic/modsizeexceeded.hxx:59
+    ModuleSizeExceeded m_xAbort 
css::uno::Reference<css::task::XInteractionContinuation>
+    comphelper::OInteraction
+include/basic/modsizeexceeded.hxx:60
+    ModuleSizeExceeded m_xApprove 
css::uno::Reference<css::task::XInteractionContinuation>
+    comphelper::OInteraction
+include/basic/sbmod.hxx:72
+    SbModule pDocObject SbxObjectRef
+    SbUnoObject
+include/basic/sbstar.hxx:47
+    StarBASIC pRtl SbxObjectRef
+    SbiStdObject
+include/basic/sbxvar.hxx:258
+    SbxVariable pParent SbxObject *
+    StarBASIC
+include/comphelper/propertycontainerhelper.hxx:48
+    comphelper::PropertyDescription::LocationAccess pDerivedClassMember void *
+    com::sun::star::uno::Any
+include/connectivity/sdbcx/VTable.hxx:77
+    connectivity::sdbcx::OTable m_xColumns std::unique_ptr<OCollection>
+    dbaccess::OColumns
+include/connectivity/sdbcx/VTable.hxx:79
+    connectivity::sdbcx::OTable m_pTables OCollection *
+    connectivity::mysql::OTables
+include/cppuhelper/interfacecontainer.h:601
+    cppu::OMultiTypeInterfaceContainerHelper m_pMap void *
+    std::vector
+include/cppuhelper/propshlp.hxx:298
+    cppu::OMultiTypeInterfaceContainerHelperInt32 m_pMap void *
+    std::vector
+include/editeng/AccessibleContextBase.hxx:266
+    accessibility::AccessibleContextBase mxRelationSet 
css::uno::Reference<css::accessibility::XAccessibleRelationSet>
+    utl::AccessibleRelationSetHelper
+include/editeng/editdata.hxx:231
+    HtmlImportInfo pParser SvParser<HtmlTokenId> *
+    HTMLParser
+include/editeng/editdata.hxx:245
+    RtfImportInfo pParser SvParser<int> *
+    SvxRTFParser
+include/filter/msfilter/msdffimp.hxx:219
+    SvxMSDffImportRec pObj rtl::Reference<SdrObject>
+    SdrObjGroup
+include/filter/msfilter/svdfppt.hxx:458
+    SdPageCapsule page SdrPage *
+    SdPage
+include/formula/FormulaCompiler.hxx:394
+    formula::FormulaCompiler mpToken FormulaTokenRef
+    ScTableRefToken
+include/formula/FormulaCompiler.hxx:397
+    formula::FormulaCompiler pArr FormulaTokenArray *
+    ScTokenArray
+include/jvmaccess/unovirtualmachine.hxx:94
+    jvmaccess::UnoVirtualMachine m_classLoader void *
+    _jobject
+include/oox/drawingml/graphicshapecontext.hxx:55
+    oox::drawingml::GraphicalObjectFrameContext mpParent 
::oox::core::ContextHandler2Helper *
+    oox::ppt::PPTShapeGroupContext
+include/oox/drawingml/shape.hxx:418
+    oox::drawingml::Shape mpDiagramHelper svx::diagram::IDiagramHelper *
+    oox::drawingml::AdvancedDiagramHelper
+include/oox/drawingml/shapecontext.hxx:46
+    oox::drawingml::ShapeContext mpShapePtr ShapePtr
+    oox::ppt::PPTShape
+include/oox/export/vmlexport.hxx:87
+    oox::vml::VMLExport m_pSdrObject const SdrObject *
+    SdrGrafObj
+include/oox/shape/ShapeContextHandler.hxx:137
+    oox::shape::ShapeContextHandler mxDrawingFragmentHandler 
rtl::Reference<vml::DrawingFragment>
+    oox::core::ContextHandler
+include/oox/shape/ShapeContextHandler.hxx:140
+    oox::shape::ShapeContextHandler mxLockedCanvasContext 
rtl::Reference<LockedCanvasContext>
+    oox::core::ContextHandler
+include/oox/shape/ShapeContextHandler.hxx:143
+    oox::shape::ShapeContextHandler mxWpgContext rtl::Reference<WpgContext>
+    oox::core::ContextHandler
+include/oox/vml/vmlshapecontext.hxx:147
+    oox::vml::ShapeContext mrShape ShapeBase &
+    oox::vml::SimpleShape
+include/sfx2/basedlgs.hxx:129
+    SfxSingleTabDialogController m_xSfxPage std::unique_ptr<SfxTabPage>
+    SfxMacroTabPage
+include/sfx2/devtools/DevelopmentToolDockingWindow.hxx:42
+    DevelopmentToolDockingWindow mxSelectionListener 
css::uno::Reference<css::view::XSelectionChangeListener>
+    SelectionChangeHandler
+include/sfx2/sfxstatuslistener.hxx:69
+    SfxStatusListener m_xDispatch css::uno::Reference<css::frame::XDispatch>
+    SfxOfficeDispatch
+include/sfx2/sidebar/Panel.hxx:102
+    sfx2::sidebar::Panel mxElement css::uno::Reference<css::ui::XUIElement>
+    sfx2::sidebar::SidebarPanelBase
+include/sot/stg.hxx:209
+    UCBStorageStream pImp UCBStorageStream_Impl *
+    SvStream
+include/sot/storage.hxx:52
+    SotStorageStream pOwnStm BaseStorageStream *
+    UCBStorageStream
+include/sot/storage.hxx:77
+    SotStorage m_pOwnStg BaseStorage *
+    UCBStorage
+include/svl/style.hxx:208
+    SfxStyleSheetIterator pBasePool const SfxStyleSheetBasePool *
+    SwDocStyleSheetPool
+include/svl/style.hxx:236
+    SfxStyleSheetBasePool rPool SfxItemPool &
+    ScDocumentPool
+include/svl/undo.hxx:92
+    MarkedUndoAction pAction std::unique_ptr<SfxUndoAction>
+    ScSimpleUndo
+include/svtools/brwbox.hxx:270
+    BrowseBox pDataWin VclPtr<BrowserDataWin>
+    Control
+include/svx/AccessibleShape.hxx:391
+    accessibility::AccessibleShape m_pShape SdrObject *
+    SdrOle2Obj
+include/svx/clipboardctl.hxx:34
+    SvxClipBoardControl pClipboardFmtItem std::unique_ptr<SfxPoolItem>
+    SvxClipboardFormatItem
+include/svx/fmsrcimp.hxx:161
+    FmSearchEngine m_xSearchCursor CursorWrapper
+    com::sun::star::uno::Reference
+include/svx/gridctrl.hxx:255
+    DbGridControl m_pFieldListeners void *
+    std::map
+include/svx/svdhdl.hxx:136
+    SdrHdl m_pObj SdrObject *
+    SdrEdgeObj
+include/svx/svdmodel.hxx:198
+    SdrModel mxStyleSheetPool rtl::Reference<SfxStyleSheetBasePool>
+    SdStyleSheetPool
+include/svx/svdundo.hxx:156
+    SdrUndoAttrObj mxUndoStyleSheet rtl::Reference<SfxStyleSheetBase>
+    SfxStyleSheet
+include/svx/svdundo.hxx:157
+    SdrUndoAttrObj mxRedoStyleSheet rtl::Reference<SfxStyleSheetBase>
+    SfxStyleSheet
+include/svx/svdview.hxx:100
+    SdrViewEvent mpObj SdrObject *
+    sdr::table::SdrTableObj
+include/svx/unomodel.hxx:45
+    SvxUnoDrawingModel mpDoc SdrModel *
+    FmFormModel
+include/svx/unopage.hxx:65
+    SvxDrawPage mpPage SdrPage *
+    SdPage
+include/test/a11y/accessibletestbase.hxx:42
+    test::AccessibleTestBase mxDocument 
css::uno::Reference<css::lang::XComponent>
+    vcl::ITiledRenderable
+include/toolkit/awt/vclxmenu.hxx:59
+    VCLXMenu mpMenu VclPtr<Menu>
+    PopupMenu
+include/tools/zcodec.hxx:59
+    ZCodec mpsC_Stream void *
+    z_stream_s
+include/uno/dispatcher.hxx:54
+    com::sun::star::uno::UnoInterfaceReference m_pUnoI uno_Interface *
+    binaryurp::Proxy
+include/vbahelper/vbaeventshelperbase.hxx:214
+    VbaEventsHelperBase mpShell SfxObjectShell *
+    ScDocShell
+include/vcl/builder.hxx:144
+    VclBuilder::WinAndId m_pWindow VclPtr<vcl::Window>
+    PushButton
+include/vcl/builder.hxx:158
+    VclBuilder::MenuAndId m_pMenu VclPtr<Menu>
+    PopupMenu
+include/vcl/dockwin.hxx:117
+    DockingWindow mpOldBorderWin VclPtr<vcl::Window>
+    ImplBorderWindow
+include/vcl/event.hxx:353
+    DataChangedEvent mpData void *
+    AllSettings
+include/vcl/menu.hxx:127
+    Menu pStartedFrom VclPtr<Menu>
+    PopupMenu
+include/vcl/sysdata.hxx:68
+    SystemEnvData pDisplay void *
+    _XDisplay
+include/vcl/sysdata.hxx:71
+    SystemEnvData pVisual void *
+    Visual
+include/vcl/sysdata.hxx:161
+    SystemGraphicsData pSurface void *
+    _cairo_surface
+include/vcl/sysdata.hxx:197
+    SystemWindowData pVisual void *
+    Visual
+include/vcl/toolkit/fmtfield.hxx:60
+    FormattedField m_pFormatter Formatter *
+    (anonymous namespace)::DoubleCurrencyFormatter
+include/vcl/toolkit/menubtn.hxx:41
+    MenuButton mpFloatingWindow VclPtr<Window>
+    FloatingWindow
+include/vcl/toolkit/treelistbox.hxx:232
+    SvTreeListBox pEdItem SvLBoxItem *
+    SvLBoxString
+include/vcl/uitest/uiobject.hxx:156
+    ButtonUIObject mxButton VclPtr<Button>
+    PushButton
+include/vcl/virdev.hxx:48
+    VirtualDevice mpVirDev std::unique_ptr<SalVirtualDevice>
+    SvpSalVirtualDevice
+include/xmloff/maptype.hxx:34
+    XMLPropertyMapEntry msApiName OUString
+    rtl::OUString
+include/xmloff/prstylei.hxx:45
+    XMLPropStyleContext mxStyles rtl::Reference<SvXMLStylesContext>
+    SvXMLStylesContext
+include/xmloff/shapeimport.hxx:150
+    XMLShapeImportHelper mrImporter SvXMLImport &
+    ScXMLImport
+include/xmloff/xmlimp.hxx:225
+    SvXMLImport mpStyleMap rtl::Reference<StyleMap>
+    com::sun::star::lang::XTypeProvider
+include/xmloff/XMLPageExport.hxx:61
+    XMLPageExport m_xPageMasterExportPropMapper 
rtl::Reference<SvXMLExportPropertyMapper>
+    XMLPageMasterExportPropMapper
+lingucomponent/source/languageguessing/simpleguesser.hxx:97
+    SimpleGuesser h void *
+    (anonymous namespace)::textcat_t
+lotuswordpro/source/filter/lwpframelayout.hxx:103
+    LwpFrame m_pLayout LwpPlacableLayout *
+    LwpFrameLayout
+package/source/xstor/owriteablestream.hxx:241
+    OWriteStream m_xOutStream css::uno::Reference<css::io::XOutputStream>
+    comphelper::ByteWriter
+package/source/xstor/xstorage.hxx:114
+    OStorage_Impl m_pAntiImpl OStorage *
+    com::sun::star::util::XModifiable
+package/source/xstor/xstorage.hxx:158
+    OStorage_Impl m_pSwitchStream rtl::Reference<SwitchablePersistenceStream>
+    com::sun::star::io::XStream
+package/source/xstor/xstorage.hxx:286
+    OStorage m_pSubElDispListener ::rtl::Reference<OChildDispListener_Impl>
+    com::sun::star::lang::XEventListener
+reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx:83
+    rptxml::ImportDocumentHandler m_xDocumentHandler 
css::uno::Reference<css::xml::sax::XFastDocumentHandler>
+    SvXMLImport
+reportdesign/source/filter/xml/xmlStyleImport.hxx:34
+    rptxml::OControlStyleContext pStyles SvXMLStylesContext *
+    rptxml::OReportStylesContext
+reportdesign/source/ui/inc/DesignView.hxx:57
+    rptui::ODesignView m_pTaskPane VclPtr<vcl::Window>
+    rptui::(anonymous namespace)::OTaskWindow
+sal/rtl/bootstrap.cxx:396
+    (anonymous namespace)::FundamentalIniData ini rtlBootstrapHandle
+    (anonymous namespace)::Bootstrap_Impl
+sc/inc/chgtrack.hxx:192
+    ScChangeAction pNext ScChangeAction *
+    ScChangeActionContent
+sc/inc/compiler.hxx:310
+    ScCompiler::TableRefEntry mxToken ScTokenRef
+    ScTableRefToken
+sc/inc/dpfilteredcache.hxx:97
+    ScDPFilteredCache::Criterion mpFilter std::shared_ptr<FilterBase>
+    ScDPFilteredCache::GroupFilter
+sc/inc/dpobject.hxx:95
+    ScDPObject mpTableData std::shared_ptr<ScDPTableData>
+    ScDPGroupTableData
+sc/source/core/opencl/formulagroupcl.cxx:1873
+    sc::opencl::(anonymous namespace)::DynamicKernelSoPArguments mpCodeGen 
std::shared_ptr<SlidingFunctionBase>
+    sc::opencl::OpSumIfs
+sc/source/core/opencl/opbase.hxx:465
+    sc::opencl::DynamicKernelSlidingArgument mpCodeGen 
std::shared_ptr<SlidingFunctionBase>
+    sc::opencl::OpSumIfs
+sc/source/filter/excel/xeformula.cxx:60
+    (anonymous namespace)::XclExpScToken mpScToken const FormulaToken *
+    formula::FormulaExternalToken
+sc/source/filter/inc/eeimport.hxx:43
+    ScEEImport mpParser std::unique_ptr<ScEEParser>
+    ScHTMLParser
+sc/source/filter/inc/pivottablebuffer.hxx:382
+    oox::xls::PivotTable mxDPDescriptor 
css::uno::Reference<css::sheet::XDataPilotDescriptor>
+    ScDataPilotDescriptorBase
+sc/source/filter/inc/xcl97rec.hxx:240
+    XclObjOle rOleObj const SdrObject &
+    SdrOle2Obj
+sc/source/filter/xml/xmlcvali.cxx:52
+    (anonymous namespace)::ScXMLContentValidationContext xEventContext 
SvXMLImportContextRef
+    XMLEventsImportContext
+sc/source/filter/xml/xmlimprt.hxx:156
+    ScXMLImport xSheetCellRanges 
css::uno::Reference<css::sheet::XSheetCellRangeContainer>
+    ScCellRangesObj
+sc/source/filter/xml/xmlstyli.hxx:70
+    XMLTableStyleContext pStyles SvXMLStylesContext *
+    XMLTableStylesContext
+sc/source/ui/inc/AccessibleContextBase.hxx:232
+    ScAccessibleContextBase mxParent 
css::uno::Reference<css::accessibility::XAccessible>
+    ScAccessibleSpreadsheet
+sc/source/ui/vba/vbaaxes.cxx:95
+    (anonymous namespace)::AxisIndexWrapper mxChart 
uno::Reference<excel::XChart>
+    ScVbaChart
+sc/source/ui/vba/vbaaxis.hxx:29
+    ScVbaAxis moChartParent css::uno::Reference<ov::excel::XChart>
+    ScVbaChart
+sc/source/ui/vba/vbaformat.hxx:42
+    ScVbaFormat mxPropertySet css::uno::Reference<css::beans::XPropertySet>
+    ScCellRangesBase
+sc/source/ui/vba/vbaformatconditions.hxx:37
+    ScVbaFormatConditions mxStyles css::uno::Reference<ov::excel::XStyles>
+    ScVbaStyles
+sc/source/ui/vba/vbaname.hxx:34
+    ScVbaName mxNamedRange css::uno::Reference<css::sheet::XNamedRange>
+    ScNamedRangeObj
+sc/source/ui/vba/vbarange.hxx:79
+    ScVbaRange mxRanges 
css::uno::Reference<css::sheet::XSheetCellRangeContainer>
+    ScCellRangesBase
+sc/source/ui/vba/vbawindow.cxx:103
+    (anonymous namespace)::SelectedSheetsEnumAccess m_xModel 
uno::Reference<frame::XModel>
+    ScModelObj
+sd/inc/Outliner.hxx:283
+    SdOutliner mpObj SdrObject *
+    SdrGrafObj
+sd/inc/sdfilter.hxx:53
+    SdFilter mrDocShell ::sd::DrawDocShell &
+    SfxObjectShell
+sd/inc/stlpool.hxx:135
+    SdStyleSheetPool mxGraphicFamily SdStyleFamilyRef
+    com::sun::star::container::XNameAccess
+sd/inc/stlpool.hxx:136
+    SdStyleSheetPool mxCellFamily SdStyleFamilyRef
+    com::sun::star::container::XNameAccess
+sd/source/console/PresenterController.hxx:181
+    sdext::presenter::PresenterController mxController rtl::Reference< 
::sd::DrawController>
+    cppu::OWeakObject
+sd/source/console/PresenterCurrentSlideObserver.hxx:73
+    sdext::presenter::PresenterCurrentSlideObserver mpPresenterController 
::rtl::Reference<PresenterController>
+    com::sun::star::uno::XWeak
+sd/source/ui/annotations/annotationtag.cxx:171
+    sd::(anonymous namespace)::AnnotationHdl mxAnnotation 
Reference<XAnnotation>
+    sd::Annotation
+sd/source/ui/annotations/annotationtag.hxx:77
+    sd::AnnotationTag mxAnnotation 
css::uno::Reference<css::office::XAnnotation>
+    sd::Annotation
+sd/source/ui/dlg/sddlgfact.hxx:165
+    AbstractBulletDialog_Impl m_xDlg std::shared_ptr<SfxTabDialogController>
+    sd::OutlineBulletDlg
+sd/source/ui/inc/DrawViewShell.hxx:497
+    sd::DrawViewShell mxScannerListener 
css::uno::Reference<css::lang::XEventListener>
+    sd::(anonymous namespace)::ScannerEventListener
+sd/source/ui/inc/framework/FrameworkHelper.hxx:301
+    sd::framework::FrameworkHelper mxConfigurationController 
css::uno::Reference<css::drawing::framework::XConfigurationController>
+    sd::framework::ConfigurationController
+sd/source/ui/inc/fupoor.hxx:147
+    sd::FuPoor mpDocSh DrawDocShell *
+    sd::GraphicDocShell
+sd/source/ui/inc/fusel.hxx:76
+    sd::FuSelection pHdl SdrHdl *
+    svx::diagram::DiagramFrameHdl
+sd/source/ui/inc/OutlineView.hxx:169
+    sd::OutlineView mrOutliner SdrOutliner &
+    SdOutliner
+sd/source/ui/inc/TextObjectBar.hxx:53
+    sd::TextObjectBar mpView ::sd::View *
+    sd::OutlineView
+sd/source/ui/inc/unchss.hxx:34
+    StyleSheetUndoAction mpStyleSheet SfxStyleSheet *
+    SdStyleSheet
+sd/source/ui/inc/ViewShell.hxx:434
+    sd::ViewShell mpContentWindow VclPtr<sd::Window>
+    vcl::Window
+sd/source/ui/inc/ViewShell.hxx:452
+    sd::ViewShell mpView ::sd::View *
+    SdrView
+sd/source/ui/slideshow/slideshowimpl.hxx:296
+    sd::SlideshowImpl mpViewShell ViewShell *
+    sd::PresentationViewShell
+sd/source/ui/table/tableobjectbar.hxx:51
+    sd::ui::table::TableObjectBar mpViewSh ::sd::ViewShell *
+    sd::DrawViewShell
+sd/source/ui/unoidl/unolayer.hxx:85
+    SdLayer mxLayerManager rtl::Reference<SdLayerManager>
+    cppu::OWeakObject
+sd/source/ui/view/DocumentRenderer.cxx:1319
+    sd::DocumentRenderer::Implementation mrBase ViewShellBase &
+    SfxBroadcaster
+sd/source/ui/view/sdview3.cxx:95
+    sd::(anonymous namespace)::ImpRememberOrigAndClone pOrig SdrObject *
+    SdrEdgeObj
+sd/source/ui/view/sdview3.cxx:96
+    sd::(anonymous namespace)::ImpRememberOrigAndClone pClone SdrObject *
+    SdrEdgeObj
+sd/source/ui/view/ViewShellManager.cxx:56
+    sd::(anonymous namespace)::ShellDescriptor mpShell SfxShell *
+    sd::ViewShell
+sdext/source/pdfimport/pdfparse/pdfentries.cxx:49
+    pdfparse::EmitImplData m_pObjectContainer const PDFContainer *
+    pdfparse::PDFFile
+sdext/source/pdfimport/sax/emitcontext.hxx:36
+    pdfi::SaxEmitter m_xDocHdl 
css::uno::Reference<css::xml::sax::XDocumentHandler>
+    SvXMLImport
+sfx2/inc/unoctitm.hxx:111
+    SfxDispatchController_Impl pDispatch SfxOfficeDispatch *
+    com::sun::star::frame::XDispatch
+sfx2/source/doc/exoticfileloadexception.hxx:37
+    ExoticFileLoadException m_xApprove 
css::uno::Reference<css::task::XInteractionContinuation>
+    comphelper::OInteraction
+sfx2/source/inc/objshimp.hxx:66
+    SfxObjectShell_Impl nTime DateTime
+    tools::Time
+sfx2/source/inc/objshimp.hxx:106
+    SfxObjectShell_Impl xHeaderAttributes tools::SvRef<SvRefBase>
+    SvKeyValueIterator
+sfx2/source/inc/statcach.hxx:66
+    SfxStateCache pInternalController SfxControllerItem *
+    SfxDispatchController_Impl
+sfx2/source/inc/StyleList.hxx:234
+    StyleList m_pParentDialog SfxCommonTemplateDialog_Impl *
+    SfxTemplateDialog_Impl
+sfx2/source/inc/workwin.hxx:84
+    SfxChild_Impl pWin VclPtr<vcl::Window>
+    SplitWindow
+sfx2/source/view/impframe.hxx:45
+    SfxFrame_Impl pExternalContainerWindow VclPtr<vcl::Window>
+    SystemWindow
+slideshow/source/inc/slideshowcontext.hxx:106
+    slideshow::internal::SlideShowContext mrCursorManager CursorManager &
+    slideshow::internal::Slide
+sot/source/sdstor/stgavl.hxx:43
+    StgAvlNode m_pLeft StgAvlNode *
+    StgDirEntry
+sot/source/sdstor/stgavl.hxx:43
+    StgAvlNode m_pRight StgAvlNode *
+    StgDirEntry
+sot/source/sdstor/stgcache.hxx:57
+    StgCache m_pStrm SvStream *
+    SvFileStream
+starmath/inc/caret.hxx:26
+    SmCaretPos pSelectedNode SmNode *
+    SmTextNode
+starmath/source/unofilter.cxx:28
+    (anonymous namespace)::MathTypeFilter m_xDstDoc 
uno::Reference<lang::XComponent>
+    SmModel
+store/source/storbase.hxx:546
+    store::OStorePageObject m_xPage std::shared_ptr<PageData>
+    store::OStoreDirectoryPageData
+svgio/inc/svgvisitor.hxx:23
+    svgio::svgreader::SvgDrawVisitor mpCurrent std::shared_ptr<gfx::DrawBase>
+    gfx::DrawRoot
+svx/source/accessibility/AccessibleTextHelper.cxx:188
+    accessibility::AccessibleTextHelper_Impl mxFrontEnd 
uno::Reference<XAccessible>
+    accessibility::AccessibleCell
+svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx:459
+    (anonymous namespace)::BinaryFunctionExpression mpFirstArg 
std::shared_ptr<ExpressionNode>
+    (anonymous namespace)::BinaryFunctionExpression
+svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx:460
+    (anonymous namespace)::BinaryFunctionExpression mpSecondArg 
std::shared_ptr<ExpressionNode>
+    (anonymous namespace)::BinaryFunctionExpression
+svx/source/inc/fmundo.hxx:187
+    FmXUndoEnvironment m_pPropertySetCache void *
+    std::map
+svx/source/unodraw/UnoGraphicExporter.cxx:172
+    (anonymous namespace)::GraphicExporter mpDoc SdrModel *
+    FmFormModel
+svx/source/unodraw/unoshtxt.cxx:82
+    SvxTextEditSourceImpl mpText SdrText *
+    sdr::table::Cell
+sw/inc/calbck.hxx:184
+    SwModify m_pWriterListeners sw::WriterListener *
+    SwClient
+sw/inc/calbck.hxx:287
+    sw::ClientIteratorBase m_pPosition WriterListener *
+    sw::ListenerEntry
+sw/inc/calc.hxx:146
+    SwCalcExp pFieldType const SwFieldType *
+    SwUserFieldType
+sw/inc/cellatr.hxx:57
+    SwTableBoxFormula m_pDefinedIn sw::BroadcastingModify *
+    SwTableBoxFormat
+sw/inc/contentindex.hxx:51
+    SwContentIndex m_pMark const sw::mark::IMark *
+    sw::mark::CrossRefBookmark
+sw/inc/crsrsh.hxx:115
+    SwContentAtPos pFndTextAttr const SwTextAttr *
+    SwTextFootnote
+sw/inc/doc.hxx:219
+    SwDoc mpMarkManager const std::unique_ptr< ::sw::mark::MarkManager>
+    IDocumentMarkAccess
+sw/inc/docsh.hxx:72
+    SwDocShell m_xBasePool rtl::Reference<SfxStyleSheetBasePool>
+    SwDocStyleSheetPool
+sw/inc/docstyle.hxx:52
+    SwDocStyleSheet m_pColl SwTextFormatColl *
+    SwConditionTextFormatColl
+sw/inc/EnhancedPDFExportHelper.hxx:99
+    Num_Info mrFrame const SwFrame &
+    SwTextFrame
+sw/inc/hints.hxx:61
+    SwPtrMsgPoolItem pObject void *
+    SwFormat
+sw/inc/ndgrf.hxx:40
+    SwGrfNode mxLink tools::SvRef<sfx2::SvBaseLink>
+    SwBaseLink
+sw/inc/OnlineAccessibilityCheck.hxx:30
+    sw::WeakNodeContainer m_pNode SwNode *
+    sw::BroadcastingModify
+sw/inc/section.hxx:152
+    SwSection m_RefLink tools::SvRef<sfx2::SvBaseLink>
+    (anonymous namespace)::SwIntrnlSectRefLink
+sw/inc/swbaslnk.hxx:31
+    SwBaseLink m_pContentNode SwContentNode *
+    SwGrfNode
+sw/inc/swevent.hxx:63
+    SwCallMouseEvent::(unnamed union at 
/home/noel/libo-plugin/sw/inc/swevent.hxx:60:5) pFormat const SwFrameFormat *
+    sw::SpzFrameFormat
+sw/inc/swevent.hxx:71
+    SwCallMouseEvent::(anonymous union)::(unnamed struct at 
/home/noel/libo-plugin/sw/inc/swevent.hxx:69:9) pFormat const SwFrameFormat *
+    sw::SpzFrameFormat
+sw/inc/swserv.hxx:37
+    SwServerObject::(unnamed union at 
/home/noel/libo-plugin/sw/inc/swserv.hxx:36:5) pBkmk ::sw::mark::IMark *
+    sw::mark::DdeBookmark
+sw/inc/undobj.hxx:300
+    SwUndoFlyBase m_pFrameFormat SwFrameFormat *
+    sw::SpzFrameFormat
+sw/inc/unotextcursor.hxx:78
+    SwXTextCursor m_pUnoCursor sw::UnoCursorPointer
+    SwCursor
+sw/inc/view.hxx:197
+    SwView m_pWrtShell std::unique_ptr<SwWrtShell>
+    SwCursorShell
+sw/inc/viscrs.hxx:44
+    SwVisibleCursor m_pCursorShell const SwCursorShell *
+    SwViewShell
+sw/inc/viscrs.hxx:90
+    SwSelPaintRects m_pCursorOverlay 
std::unique_ptr<sdr::overlay::OverlayObject>
+    sdr::overlay::OverlaySelection
+sw/source/core/access/accfrmobj.hxx:82
+    sw::access::SwAccessibleChild mpDrawObj const SdrObject *
+    SwVirtFlyDrawObj
+sw/source/core/access/accnotexthyperlink.hxx:35
+    SwAccessibleNoTextHyperlink mpFrame const SwFrame *
+    SwLayoutFrame
+sw/source/core/doc/doccomp.cxx:1909
+    (anonymous namespace)::SaveMergeRedline pSrcRedl const SwRangeRedline *
+    SwPaM
+sw/source/core/doc/DocumentRedlineManager.cxx:1110
+    (anonymous namespace)::TemporaryRedlineUpdater m_rRedline SwRangeRedline &
+    SwPaM
+sw/source/core/inc/DocumentContentOperationsManager.hxx:120
+    sw::DocumentContentOperationsManager::ParaRstFormat pFormatColl 
SwFormatColl *
+    SwTextFormatColl
+sw/source/core/inc/flowfrm.hxx:118
+    SwFlowFrame m_pFollow SwFlowFrame *
+    SwTextFrame
+sw/source/core/inc/frame.hxx:338
+    SwFrame mpNext SwFrame *
+    SwContentFrame
+sw/source/core/inc/MarkManager.hxx:160
+    sw::mark::MarkManager m_pLastActiveFieldmark 
sw::mark::FieldmarkWithDropDownButton *
+    sw::mark::DropDownFieldmark
+sw/source/core/inc/swcache.hxx:204
+    SwCacheAccess m_pObj SwCacheObj *
+    SwTextLine
+sw/source/core/inc/txmsrt.hxx:51
+    SwTOXSource pNd const SwContentNode *
+    SwTextNode
+sw/source/core/inc/viewimp.hxx:61
+    SwViewShellImp m_pShell SwViewShell *
+    SwFEShell
+sw/source/core/layout/paintfrm.cxx:273
+    (anonymous namespace)::SwPaintProperties pSGlobalShell SwViewShell *
+    SwWrtShell
+sw/source/core/text/inftxt.hxx:692
+    SwTextSlot pInf SwTextSizeInfo *
+    SwTextPaintInfo
+sw/source/core/text/itrtxt.hxx:35
+    SwTextIter m_pInf SwTextInfo *
+    SwTextSizeInfo
+sw/source/core/text/itrtxt.hxx:36
+    SwTextIter m_pCurr SwLineLayout *
+    SwLinePortion
+sw/source/core/text/porfld.hxx:242
+    SwFieldFormDropDownPortion m_pFieldMark sw::mark::IFieldmark *
+    sw::mark::DropDownFieldmark
+sw/source/core/text/porfld.hxx:260
+    SwFieldFormDatePortion m_pFieldMark sw::mark::IFieldmark *
+    sw::mark::DateFieldmark
+sw/source/core/undo/undraw.cxx:48
+    SwUndoGroupObjImpl pFormat SwDrawFrameFormat *
+    sw::SpzFrameFormat
+sw/source/core/unocore/unoobj2.cxx:682
+    SwXTextRange::Impl m_pTableOrSectionFormat const SwFrameFormat *
+    SwSectionFormat
+sw/source/core/unocore/unorefmk.cxx:592
+    SwXMeta::Impl m_pMeta sw::Meta *
+    sw::MetaField
+sw/source/core/unocore/unotbl.cxx:122
+    (anonymous namespace)::FindUnoInstanceHint m_pResult 
rtl::Reference<SwXTextTableRow>
+    com::sun::star::beans::XPropertySet
+sw/source/filter/html/swhtml.hxx:400
+    SwHTMLParser m_pActionViewShell SwViewShell *
+    SwEditShell
+sw/source/filter/html/swhtml.hxx:406
+    SwHTMLParser m_pMarquee rtl::Reference<SdrObject>
+    SdrTextObj
+sw/source/filter/ww8/ww8par.hxx:1269
+    SwWW8ImplReader m_pCurrentColl SwFormat *
+    SwTextFormatColl
+sw/source/filter/ww8/ww8par.hxx:1294
+    SwWW8ImplReader m_pNumFieldType SwFieldType *
+    SwSetExpFieldType
+sw/source/filter/xml/xmlexp.hxx:54
+    SwXMLExport m_pTableItemMapper std::unique_ptr<SvXMLExportItemMapper>
+    (anonymous namespace)::SwXMLTableItemMapper_Impl
+sw/source/filter/xml/xmlitem.hxx:37
+    SwXMLItemSetContext m_xBackground SvXMLImportContextRef
+    SwXMLBrushItemImportContext
+sw/source/filter/xml/XMLRedlineImportHelper.hxx:45
+    XMLRedlineImportHelper m_rImport SvXMLImport &
+    SwXMLImport
+sw/source/filter/xml/xmltbli.cxx:95
+    SwXMLTableCell_Impl m_xSubTable SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/filter/xml/xmltbli.cxx:305
+    (anonymous namespace)::SwXMLTableCellContext_Impl m_xMyTable 
SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/filter/xml/xmltbli.cxx:639
+    (anonymous namespace)::SwXMLTableColContext_Impl m_xMyTable 
SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/filter/xml/xmltbli.cxx:723
+    (anonymous namespace)::SwXMLTableColsContext_Impl m_xMyTable 
SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/filter/xml/xmltbli.cxx:767
+    (anonymous namespace)::SwXMLTableRowContext_Impl m_xMyTable 
SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/filter/xml/xmltbli.cxx:878
+    (anonymous namespace)::SwXMLTableRowsContext_Impl m_xMyTable 
SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/filter/xml/xmltbli.hxx:84
+    SwXMLTableContext m_xParentTable SvXMLImportContextRef
+    SwXMLTableContext
+sw/source/ui/dialog/swdlgfact.hxx:231
+    AbstractSwBreakDlg_Impl m_xDlg std::shared_ptr<weld::DialogController>
+    SwBreakDlg
+sw/source/ui/dialog/swdlgfact.hxx:562
+    AbstractInsTableDlg_Impl m_xDlg std::shared_ptr<weld::DialogController>
+    SwInsTableDlg
+sw/source/uibase/inc/fldmgr.hxx:103
+    SwFieldMgr m_pCurField SwField *
+    SwPageNumberField
+sw/source/uibase/inc/swdtflvr.hxx:81
+    SwTransferable m_xDdeLink tools::SvRef<sfx2::SvBaseLink>
+    (anonymous namespace)::SwTransferDdeLink
+sw/source/uibase/inc/swuiccoll.hxx:35
+    SwCondCollPage m_pFormat SwFormat *
+    SwConditionTextFormatColl
+sw/source/uibase/inc/unotools.hxx:48
+    SwOneExampleFrame m_xCursor css::uno::Reference<css::text::XTextCursor>
+    OTextCursorHelper
+sw/source/uibase/inc/unotxvw.hxx:73
+    SwXTextView mxViewSettings css::uno::Reference<css::beans::XPropertySet>
+    comphelper::ChainablePropertySet
+toolkit/source/awt/vclxwindow.cxx:133
+    VCLXWindowImpl mxWindowStyleSettings 
css::uno::Reference<css::awt::XStyleSettings>
+    toolkit::WindowStyleSettings
+toolkit/source/controls/tree/treedatamodel.cxx:81
+    (anonymous namespace)::MutableTreeDataModel mxRootNode Reference<XTreeNode>
+    (anonymous namespace)::MutableTreeNode
+unoidl/source/unoidl-read.cxx:151
+    (anonymous namespace)::Entity entity const rtl::Reference<unoidl::Entity>
+    unoidl::PublishableEntity
+vbahelper/source/vbahelper/vbashaperange.cxx:36
+    (anonymous namespace)::VbShapeRangeEnumHelper m_xParent 
uno::Reference<XCollection>
+    ScVbaShapeRange
+vbahelper/source/vbahelper/vbashapes.cxx:55
+    (anonymous namespace)::VbShapeEnumHelper m_xParent 
uno::Reference<msforms::XShapes>
+    ScVbaShapes
+vcl/inc/animate/AnimationRenderer.hxx:36
+    AnimationData mpRendererData void *
+    AnimationRenderer
+vcl/inc/animate/AnimationRenderer.hxx:48
+    AnimationRenderer mpRenderContext VclPtr<OutputDevice>
+    vcl::WindowOutputDevice
+vcl/inc/listbox.hxx:503
+    ImplListBoxFloatingWindow mpImplLB VclPtr<ImplListBox>
+    vcl::Window
+vcl/inc/qt5/QtAccessibleWidget.hxx:185
+    QtAccessibleWidget m_pObject QObject *
+    QWidget
+vcl/inc/qt5/QtClipboard.hxx:48
+    QtClipboard m_aContents 
css::uno::Reference<css::datatransfer::XTransferable>
+    QtClipboardTransferable
+vcl/inc/qt5/QtMenu.hxx:45
+    QtMenu mpVCLMenu VclPtr<Menu>
+    MenuBar
+vcl/inc/salusereventlist.hxx:41
+    SalUserEventList::SalUserEvent m_pFrame SalFrame *
+    SvpSalFrame
+vcl/inc/salusereventlist.hxx:42
+    SalUserEventList::SalUserEvent m_pData void *
+    ImplSVEvent
+vcl/inc/salvtables.hxx:45
+    SalInstanceBuilder m_aOwnedToplevel VclPtr<vcl::Window>
+    VclBuilderContainer
+vcl/inc/salvtables.hxx:414
+    SalInstanceLabel m_xLabel VclPtr<Control>
+    FixedText
+vcl/inc/salwtype.hxx:134
+    SalMenuEvent mpMenu void *
+    Menu
+vcl/inc/svdata.hxx:397
+    ImplSVData mpDefInst SalInstance *
+    QtInstance
+vcl/inc/svimpbox.hxx:185
+    SvImpLBox m_pView VclPtr<SvTreeListBox>
+    IconView
+vcl/inc/unx/cupsmgr.hxx:42
+    psp::CUPSManager m_pDests void *
+    cups_dest_s
+vcl/inc/unx/gendisp.hxx:31
+    SalGenericDisplay m_pCapture SalFrame *
+    GtkSalFrame
+vcl/inc/unx/gtk/gtksalmenu.hxx:55
+    GtkSalMenu mpVCLMenu VclPtr<Menu>
+    MenuBar
+vcl/inc/unx/i18n_cb.hxx:77
+    preedit_data_t pFrame SalFrame *
+    X11SalFrame
+vcl/inc/unx/salgdi.h:128
+    X11SalGraphics m_pFrame SalFrame *
+    SalGeometryProvider
+vcl/inc/unx/salgdi.h:129
+    X11SalGraphics m_pVDev SalVirtualDevice *
+    SalGeometryProvider
+vcl/inc/unx/salgdi.h:136
+    X11SalGraphics mxImpl std::unique_ptr<SalGraphicsImpl>
+    X11GraphicsImpl
+vcl/inc/window.h:230
+    WindowImpl mpSysObj SalObject *
+    QtObject
+vcl/inc/window.h:233
+    WindowImpl mpBorderWindow VclPtr<vcl::Window>
+    ImplBorderWindow
+vcl/inc/window.h:234
+    WindowImpl mpClientWindow VclPtr<vcl::Window>
+    WorkWindow
+vcl/inc/window.h:245
+    WindowImpl mpDlgCtrlDownWindow VclPtr<vcl::Window>
+    PushButton
+vcl/source/control/imivctl.hxx:130
+    SvxIconChoiceCtrl_Impl pView VclPtr<SvtIconChoiceCtrl>
+    vcl::Window
+vcl/source/window/impldockingwrapper.hxx:42
+    ImplDockingWindowWrapper mpDockingWindow VclPtr<vcl::Window>
+    DockingWindow
+vcl/source/window/impldockingwrapper.hxx:46
+    ImplDockingWindowWrapper mpOldBorderWin VclPtr<vcl::Window>
+    ImplBorderWindow
+vcl/source/window/menubarwindow.hxx:71
+    MenuBarWindow m_pMenu VclPtr<Menu>
+    MenuBar
+vcl/source/window/menufloatingwindow.hxx:38
+    MenuFloatingWindow pMenu VclPtr<Menu>
+    PopupMenu
+vcl/source/window/menuitemlist.hxx:38
+    MenuItemData pSubMenu VclPtr<Menu>
+    PopupMenu
+vcl/unx/generic/dtrans/X11_selection.hxx:221
+    x11::SelectionManager::DropTargetEntry m_pTarget DropTarget *
+    com::sun::star::datatransfer::dnd::XDropTarget
+vcl/unx/generic/gdi/cairo_xlib_cairo.hxx:40
+    cairo::X11SysData pDisplay void *
+    _XDisplay
+vcl/unx/generic/gdi/cairo_xlib_cairo.hxx:42
+    cairo::X11SysData pVisual void *
+    Visual
+vcl/unx/generic/gdi/cairo_xlib_cairo.hxx:49
+    cairo::X11Pixmap mpDisplay void *
+    _XDisplay
+writerfilter/source/dmapper/DomainMapper_Impl.hxx:529
+    writerfilter::dmapper::DomainMapper_Impl m_pLastSectionContext 
PropertyMapPtr
+    writerfilter::dmapper::SectionPropertyMap
+writerfilter/source/dmapper/NumberingManager.hxx:221
+    writerfilter::dmapper::ListsManager m_pCurrentDefinition class 
AbstractListDef::Pointer
+    writerfilter::dmapper::ListDef
+writerfilter/source/dmapper/StyleSheetTable.cxx:279
+    writerfilter::dmapper::StyleSheetTable_Impl m_pCurrentEntry 
StyleSheetEntryPtr
+    writerfilter::dmapper::TableStyleSheetEntry
+writerfilter/source/dmapper/TablePropertiesHandler.hxx:38
+    writerfilter::dmapper::TablePropertiesHandler m_pTableManager TableManager 
*
+    writerfilter::dmapper::DomainMapperTableManager
+writerfilter/source/ooxml/OOXMLFastContextHandler.hxx:365
+    writerfilter::ooxml::OOXMLFastContextHandlerTable mCurrentChild 
css::uno::Reference<css::xml::sax::XFastContextHandler>
+    writerfilter::ooxml::OOXMLFastContextHandler
+writerfilter/source/ooxml/OOXMLFastContextHandler.hxx:536
+    writerfilter::ooxml::OOXMLFastContextHandlerWrapper mxWrappedContext 
css::uno::Reference<css::xml::sax::XFastContextHandler>
+    writerfilter::ooxml::OOXMLFastContextHandler
+writerperfect/inc/DocumentHandler.hxx:47
+    writerperfect::DocumentHandler mxHandler 
css::uno::Reference<css::xml::sax::XDocumentHandler>
+    SvXMLImport
+xmloff/inc/XMLShapePropertySetContext.hxx:26
+    XMLShapePropertySetContext mxBulletStyle SvXMLImportContextRef
+    SvxXMLListStyleContext
+xmloff/source/draw/ximpshap.hxx:555
+    SdXMLFrameShapeContext mxImplContext SvXMLImportContextRef
+    SdXMLShapeContext
+xmloff/source/text/txtparaimphint.hxx:223
+    XMLDrawHint_Impl xContext SvXMLImportContextRef
+    SvXMLShapeContext
+xmloff/source/text/XMLTextFrameContext.hxx:38
+    XMLTextFrameContext m_xImplContext SvXMLImportContextRef
+    (anonymous namespace)::XMLTextFrameContext_Impl
+xmloff/source/transform/ControlOOoTContext.hxx:26
+    XMLControlOOoTransformerContext m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmloff/source/transform/FormPropOOoTContext.hxx:29
+    XMLFormPropOOoTransformerContext m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmloff/source/transform/FrameOASISTContext.hxx:26
+    XMLFrameOASISTransformerContext m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmloff/source/transform/MergeElemTContext.hxx:31
+    XMLMergeElemTransformerContext m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmloff/source/transform/PersAttrListTContext.hxx:29
+    XMLPersAttrListTContext m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmloff/source/transform/StyleOASISTContext.cxx:63
+    XMLPropertiesTContext_Impl m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmloff/source/transform/StyleOOoTContext.cxx:144
+    (anonymous namespace)::XMLTypedPropertiesOOoTContext_Impl m_xAttrList 
css::uno::Reference<css::xml::sax::XAttributeList>
+    XMLMutableAttributeList
+xmlscript/source/xmldlg_imexp/imp_share.hxx:589
+    xmlscript::ComboBoxElement _popup 
css::uno::Reference<css::xml::input::XElement>
+    xmlscript::MenuPopupElement
+xmlscript/source/xmldlg_imexp/imp_share.hxx:608
+    xmlscript::MenuListElement _popup 
css::uno::Reference<css::xml::input::XElement>
+    xmlscript::MenuPopupElement
+xmlscript/source/xmllib_imexp/imp_share.hxx:149
+    xmlscript::LibElementBase mxParent rtl::Reference<LibElementBase>
+    xmlscript::LibrariesElement
+xmlsecurity/inc/xsecctl.hxx:73
+    InternalSignatureInformation xReferenceResolvedListener 
css::uno::Reference<css::xml::crypto::sax::XReferenceResolvedListener>
+    SignatureVerifierImpl
+xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx:55
+    SecurityEnvironment_NssImpl m_xSigningCertificate 
css::uno::Reference<css::security::XCertificate>
+    X509Certificate_NssImpl
diff --git a/compilerplugins/clang/test/fieldcast.cxx 
b/compilerplugins/clang/test/fieldcast.cxx
new file mode 100644
index 000000000000..32792a0a570f
--- /dev/null
+++ b/compilerplugins/clang/test/fieldcast.cxx
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <rtl/ustring.hxx>
+#include <rtl/ref.hxx>
+
+struct Foo
+{
+    virtual ~Foo();
+};
+struct Bar : public Foo
+{
+};
+
+class Test1
+{
+    // expected-error@+1 {{cast Bar [loplugin:fieldcast]}}
+    Foo* m_p;
+    void test1() { (void)dynamic_cast<Bar*>(m_p); }
+};
+
+class Test2
+{
+    // expected-error@+1 {{cast Bar [loplugin:fieldcast]}}
+    rtl::Reference<Foo> m_p;
+    void test1() { (void)dynamic_cast<Bar*>(m_p.get()); }
+};
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/solenv/CompilerTest_compilerplugins_clang.mk 
b/solenv/CompilerTest_compilerplugins_clang.mk
index dff61e873af4..95044e47758c 100644
--- a/solenv/CompilerTest_compilerplugins_clang.mk
+++ b/solenv/CompilerTest_compilerplugins_clang.mk
@@ -35,6 +35,7 @@ $(eval $(call 
gb_CompilerTest_add_exception_objects,compilerplugins_clang, \
     compilerplugins/clang/test/external \
     compilerplugins/clang/test/faileddyncast \
     compilerplugins/clang/test/fakebool \
+    compilerplugins/clang/test/fieldcast \
     compilerplugins/clang/test/flatten \
     compilerplugins/clang/test/fragiledestructor \
     compilerplugins/clang/test/getstr \
diff --git a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx 
b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
index 32ece48520d6..2ab5b011e2c7 100644
--- a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
+++ b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
@@ -344,14 +344,15 @@ Reference< XCertificate > 
SecurityEnvironment_NssImpl::getCertificate( const OUS
 }
 
 Sequence< Reference < XCertificate > > 
SecurityEnvironment_NssImpl::buildCertificatePath( const Reference< 
XCertificate >& begin ) {
-    // Remember the signing certificate.
-    m_xSigningCertificate = begin;
 
-    const X509Certificate_NssImpl* xcert = 
dynamic_cast<X509Certificate_NssImpl*>(begin.get());
+    X509Certificate_NssImpl* xcert = 
dynamic_cast<X509Certificate_NssImpl*>(begin.get());
     if( xcert == nullptr ) {
         throw RuntimeException() ;
     }
 
+    // Remember the signing certificate.
+    m_xSigningCertificate = xcert;
+
     const CERTCertificate* cert = xcert->getNssCert() ;
     if (!cert)
         return {};
@@ -796,10 +797,9 @@ xmlSecKeysMngrPtr 
SecurityEnvironment_NssImpl::createKeysManager() {
         throw RuntimeException();
 
     // Adopt the private key of the signing certificate, if it has any.
-    if (auto pCertificate
-            = 
dynamic_cast<X509Certificate_NssImpl*>(m_xSigningCertificate.get()))
+    if (m_xSigningCertificate)
     {
-        SECKEYPrivateKey* pPrivateKey = 
SECKEY_CopyPrivateKey(pCertificate->getPrivateKey());
+        SECKEYPrivateKey* pPrivateKey = 
SECKEY_CopyPrivateKey(m_xSigningCertificate->getPrivateKey());
         if (pPrivateKey)
         {
             xmlSecKeyDataPtr pKeyData = xmlSecNssPKIAdoptKey(pPrivateKey, 
nullptr);
diff --git a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx 
b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx
index 253d3ea1f4e3..c0e469899852 100644
--- a/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx
+++ b/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx
@@ -52,7 +52,7 @@ private:
 
     std::vector< PK11SlotInfo* > m_Slots;
     /// The last used certificate which has the private key for signing.
-    css::uno::Reference<css::security::XCertificate> m_xSigningCertificate;
+    rtl::Reference<X509Certificate_NssImpl> m_xSigningCertificate;
 
     std::mutex m_mutex;
 

Reply via email to