include/svx/sdr/contact/viewcontact.hxx      |    5 +++++
 svx/source/sdr/contact/viewcontact.cxx       |    9 ++++++++-
 svx/source/sdr/contact/viewobjectcontact.cxx |    9 +++------
 3 files changed, 16 insertions(+), 7 deletions(-)

New commits:
commit a53c693564f95acdbf6686e00b86671c0e068c48
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Aug 2 17:09:19 2023 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Thu Aug 3 09:52:36 2023 +0200

    Related: cool#6911 refactor for an optimization
    
    no change intended here
    
    Change-Id: I34b72776b1a05979fbe3a02ff1548b6aa8a183df
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155268
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/include/svx/sdr/contact/viewcontact.hxx 
b/include/svx/sdr/contact/viewcontact.hxx
index ffdc6d055008..1491d0a1401d 100644
--- a/include/svx/sdr/contact/viewcontact.hxx
+++ b/include/svx/sdr/contact/viewcontact.hxx
@@ -30,6 +30,7 @@ class SdrObject;
 
 namespace sdr::contact
 {
+class DisplayInfo;
 class ObjectContact;
 class ViewObjectContact;
 
@@ -146,6 +147,10 @@ public:
     // delete all existing VOCs by purpose, but can also be used for other 
purposes.
     // It is always possible to delete the VOCs, these are re-created on demand
     void flushViewObjectContacts(bool bWithHierarchy = true);
+
+    void getPrimitive2DSequenceHierarchyOfIndex(
+        sal_uInt32 a, DisplayInfo& rDisplayInfo, ObjectContact& rObjectContact,
+        drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor);
 };
 }
 
diff --git a/svx/source/sdr/contact/viewcontact.cxx 
b/svx/source/sdr/contact/viewcontact.cxx
index 2a5d73e509c3..3529f98cf385 100644
--- a/svx/source/sdr/contact/viewcontact.cxx
+++ b/svx/source/sdr/contact/viewcontact.cxx
@@ -290,6 +290,13 @@ void ViewContact::flushViewObjectContacts(bool 
bWithHierarchy)
     // delete local VOCs
     deleteAllVOCs();
 }
-}
 
+void ViewContact::getPrimitive2DSequenceHierarchyOfIndex(
+    sal_uInt32 a, DisplayInfo& rDisplayInfo, ObjectContact& rObjectContact,
+    drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor)
+{
+    const ViewObjectContact& 
rCandidate(GetViewContact(a).GetViewObjectContact(rObjectContact));
+    rCandidate.getPrimitive2DSequenceHierarchy(rDisplayInfo, rVisitor);
+}
+}
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/sdr/contact/viewobjectcontact.cxx 
b/svx/source/sdr/contact/viewobjectcontact.cxx
index 3f2ce8dc34fa..91ee66dff1ae 100644
--- a/svx/source/sdr/contact/viewobjectcontact.cxx
+++ b/svx/source/sdr/contact/viewobjectcontact.cxx
@@ -564,14 +564,11 @@ void 
ViewObjectContact::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInf
 
 void ViewObjectContact::getPrimitive2DSequenceSubHierarchy(DisplayInfo& 
rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& 
rVisitor) const
 {
-    const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
+    ViewContact& rViewContact = GetViewContact();
+    const sal_uInt32 nSubHierarchyCount(rViewContact.GetObjectCount());
 
     for(sal_uInt32 a(0); a < nSubHierarchyCount; a++)
-    {
-        const ViewObjectContact& 
rCandidate(GetViewContact().GetViewContact(a).GetViewObjectContact(GetObjectContact()));
-
-        rCandidate.getPrimitive2DSequenceHierarchy(rDisplayInfo, rVisitor);
-    }
+        rViewContact.getPrimitive2DSequenceHierarchyOfIndex(a, rDisplayInfo, 
GetObjectContact(), rVisitor);
 }
 
 // Support getting a GridOffset per object and view for non-linear ViewToDevice

Reply via email to