filter/source/msfilter/msdffimp.cxx |    2 --
 include/svx/strings.hrc             |    4 ----
 include/svx/svdobjkind.hxx          |    2 --
 include/svx/svdopath.hxx            |    5 ++---
 include/unotools/weakref.hxx        |    8 +++++++-
 svx/source/svdraw/svdedxv.cxx       |    2 --
 svx/source/svdraw/svdopath.cxx      |   15 +++------------
 svx/source/unodraw/unopage.cxx      |    2 --
 svx/source/unodraw/unoshap2.cxx     |    2 --
 svx/source/unodraw/unoshape.cxx     |    2 --
 10 files changed, 12 insertions(+), 32 deletions(-)

New commits:
commit 4e0856fa11674e386c9b84dd40a702c83450166f
Author:     Noel Grandin <[email protected]>
AuthorDate: Thu Nov 3 16:07:11 2022 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Fri Nov 4 08:18:57 2022 +0100

    tdf#54857 use more static_cast in WeakReference::get
    
    which shaves 3% off the load time here.
    
    Change-Id: I514dedc765ad12da2ad08e115c1ebf86c653c433
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142237
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/include/unotools/weakref.hxx b/include/unotools/weakref.hxx
index 023695dc14ae..9cf326d99625 100644
--- a/include/unotools/weakref.hxx
+++ b/include/unotools/weakref.hxx
@@ -29,6 +29,7 @@
 #include <cppuhelper/weakref.hxx>
 #include <cppuhelper/weak.hxx>
 #include <rtl/ref.hxx>
+#include <type_traits>
 
 namespace unotools
 {
@@ -114,7 +115,12 @@ public:
     rtl::Reference<interface_type> SAL_CALL get() const
     {
         css::uno::Reference<css::uno::XInterface> xInterface = 
WeakReferenceHelper::get();
-        return dynamic_cast<interface_type*>(xInterface.get());
+        // If XInterface is an ambiguous base of interface_type, we have to 
use dynamic_cast,
+        // otherwise we can use the faster static_cast.
+        if constexpr (std::is_convertible_v<css::uno::XInterface, 
interface_type>)
+            return static_cast<interface_type*>(xInterface.get());
+        else
+            return dynamic_cast<interface_type*>(xInterface.get());
     }
 
     /**  Gets a hard reference to the object.
commit 6d2ee5d46ee0146a4990dfe3b3246371fece0826
Author:     Noel Grandin <[email protected]>
AuthorDate: Fri Nov 4 08:10:02 2022 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Fri Nov 4 08:18:46 2022 +0100

    SplineLine and SplineFill have never been implemented
    
    Change-Id: I75e01bc8831a9d8e6e1f52fc3a89cd9827e1d6b9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142263
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/filter/source/msfilter/msdffimp.cxx 
b/filter/source/msfilter/msdffimp.cxx
index aa6093a408a1..fe5cd766811b 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -542,8 +542,6 @@ void SvxMSDffManager::SolveSolver( const 
SvxMSDffSolverContainer& rSolver )
                             case SdrObjKind::PathFill :
                             case SdrObjKind::FreehandLine :
                             case SdrObjKind::FreehandFill :
-                            case SdrObjKind::SplineLine :
-                            case SdrObjKind::SplineFill :
                             case SdrObjKind::PathPoly :
                             case SdrObjKind::PathPolyLine :
                             {
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index 3eeb16e7dcb7..9662aa83656f 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -77,10 +77,6 @@
 #define STR_ObjNameSingulFREEFILL                           
NC_("STR_ObjNameSingulFREEFILL", "Freeform Line")
 #define STR_ObjNamePluralFREEFILL                           
NC_("STR_ObjNamePluralFREEFILL", "Freeform Lines")
 #define STR_ObjNameSingulCOMBLINE                           
NC_("STR_ObjNameSingulCOMBLINE", "Curve")
-#define STR_ObjNameSingulNATSPLN                            
NC_("STR_ObjNameSingulNATSPLN", "Natural Spline")
-#define STR_ObjNamePluralNATSPLN                            
NC_("STR_ObjNamePluralNATSPLN", "Natural Splines")
-#define STR_ObjNameSingulPERSPLN                            
NC_("STR_ObjNameSingulPERSPLN", "Periodic Spline")
-#define STR_ObjNamePluralPERSPLN                            
NC_("STR_ObjNamePluralPERSPLN", "Periodic Splines")
 #define STR_ObjNameSingulTEXT                               
NC_("STR_ObjNameSingulTEXT", "Text Frame")
 #define STR_ObjNamePluralTEXT                               
NC_("STR_ObjNamePluralTEXT", "Text Frame")
 #define STR_ObjNameSingulTEXTLNK                            
NC_("STR_ObjNameSingulTEXTLNK", "Linked text frame")
diff --git a/include/svx/svdobjkind.hxx b/include/svx/svdobjkind.hxx
index 187fd0d6ffb5..e6063bc10ce5 100644
--- a/include/svx/svdobjkind.hxx
+++ b/include/svx/svdobjkind.hxx
@@ -37,8 +37,6 @@ enum class SdrObjKind : sal_uInt16
     PathFill = 11, /// closed Bezier-curve
     FreehandLine = 12, /// open free-hand line
     FreehandFill = 13, /// closed free-hand line
-    SplineLine = 14, /// natural cubic Spline                  (ni)
-    SplineFill = 15, /// periodic cubic Spline                 (ni)
     Text = 16, /// text object
     TitleText = 20, /// TitleText, special text object for StarDraw
     OutlineText = 21, /// OutlineText, special text object for StarDraw
diff --git a/include/svx/svdopath.hxx b/include/svx/svdopath.hxx
index d193b9bc1545..af6be842caad 100644
--- a/include/svx/svdopath.hxx
+++ b/include/svx/svdopath.hxx
@@ -143,10 +143,9 @@ public:
     void NbcSetPathPoly(const basegfx::B2DPolyPolygon& rPathPoly);
 
     // special functions for Bezier-polygon handling
-    bool IsClosed() const { return meKind==SdrObjKind::Polygon || 
meKind==SdrObjKind::PathPoly || meKind==SdrObjKind::PathFill || 
meKind==SdrObjKind::FreehandFill || meKind==SdrObjKind::SplineFill; }
-    bool IsLine() const { return meKind==SdrObjKind::PolyLine || 
meKind==SdrObjKind::PathPolyLine || meKind==SdrObjKind::PathLine || 
meKind==SdrObjKind::FreehandLine || meKind==SdrObjKind::SplineLine || 
meKind==SdrObjKind::Line; }
+    bool IsClosed() const { return meKind==SdrObjKind::Polygon || 
meKind==SdrObjKind::PathPoly || meKind==SdrObjKind::PathFill || 
meKind==SdrObjKind::FreehandFill; }
+    bool IsLine() const { return meKind==SdrObjKind::PolyLine || 
meKind==SdrObjKind::PathPolyLine || meKind==SdrObjKind::PathLine || 
meKind==SdrObjKind::FreehandLine || meKind==SdrObjKind::Line; }
     bool IsBezier() const { return meKind==SdrObjKind::PathLine || 
meKind==SdrObjKind::PathFill; }
-    bool IsSpline() const { return meKind==SdrObjKind::SplineLine || 
meKind==SdrObjKind::SplineFill; }
 
     // close/open path
     // if opening, move end point by "nOpenDistance"
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 77b5f9cea719..1a2ee50f2762 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -2764,8 +2764,6 @@ bool SdrObjEditView::SupportsFormatPaintbrush(SdrInventor 
nObjectInventor,
         case SdrObjKind::PathFill:
         case SdrObjKind::FreehandLine:
         case SdrObjKind::FreehandFill:
-        case SdrObjKind::SplineLine:
-        case SdrObjKind::SplineFill:
         case SdrObjKind::Text:
         case SdrObjKind::TitleText:
         case SdrObjKind::OutlineText:
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index b304426bf647..a4998647c835 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -522,7 +522,7 @@ public:
     PointerStyle GetCreatePointer() const;
 
     // helping stuff
-    static bool IsClosed(SdrObjKind eKind) { return eKind==SdrObjKind::Polygon 
|| eKind==SdrObjKind::PathPoly || eKind==SdrObjKind::PathFill || 
eKind==SdrObjKind::FreehandFill || eKind==SdrObjKind::SplineFill; }
+    static bool IsClosed(SdrObjKind eKind) { return eKind==SdrObjKind::Polygon 
|| eKind==SdrObjKind::PathPoly || eKind==SdrObjKind::PathFill || 
eKind==SdrObjKind::FreehandFill; }
     static bool IsFreeHand(SdrObjKind eKind) { return 
eKind==SdrObjKind::FreehandLine || eKind==SdrObjKind::FreehandFill; }
     static bool IsBezier(SdrObjKind eKind) { return 
eKind==SdrObjKind::PathLine || eKind==SdrObjKind::PathFill; }
     bool IsCreating() const { return mbCreating; }
@@ -1270,8 +1270,7 @@ bool ImpPathForDragAndCreate::MovCreate(SdrDragStat& 
rStat)
                 case SdrObjKind::PathFill:
                 case SdrObjKind::FreehandLine:
                 case SdrObjKind::FreehandFill:
-                case SdrObjKind::SplineLine:
-                case SdrObjKind::SplineFill: {
+                {
                     pU->eCurrentKind=eNewKind;
                     pU->bMixedCreate=true;
                     pU->nBezierStartPoint=rXPoly.GetPointCount();
@@ -1592,8 +1591,6 @@ PointerStyle ImpPathForDragAndCreate::GetCreatePointer() 
const
         case SdrObjKind::PathFill: return PointerStyle::DrawBezier;
         case SdrObjKind::FreehandLine: return PointerStyle::DrawFreehand;
         case SdrObjKind::FreehandFill: return PointerStyle::DrawFreehand;
-        case SdrObjKind::SplineLine: return PointerStyle::DrawFreehand;
-        case SdrObjKind::SplineFill: return PointerStyle::DrawFreehand;
         case SdrObjKind::PathPoly: return PointerStyle::DrawPolygon;
         case SdrObjKind::PathPolyLine: return PointerStyle::DrawPolygon;
         default: break;
@@ -1784,7 +1781,6 @@ void SdrPathObj::ImpSetClosed(bool bClose)
             case SdrObjKind::PolyLine    : meKind=SdrObjKind::Polygon;     
break;
             case SdrObjKind::PathLine: meKind=SdrObjKind::PathFill; break;
             case SdrObjKind::FreehandLine: meKind=SdrObjKind::FreehandFill; 
break;
-            case SdrObjKind::SplineLine: meKind=SdrObjKind::SplineFill; break;
             default: break;
         }
 
@@ -1797,7 +1793,6 @@ void SdrPathObj::ImpSetClosed(bool bClose)
             case SdrObjKind::Polygon    : meKind=SdrObjKind::PolyLine;     
break;
             case SdrObjKind::PathFill: meKind=SdrObjKind::PathLine; break;
             case SdrObjKind::FreehandFill: meKind=SdrObjKind::FreehandLine; 
break;
-            case SdrObjKind::SplineFill: meKind=SdrObjKind::SplineLine; break;
             default: break;
         }
 
@@ -1812,7 +1807,7 @@ void SdrPathObj::TakeObjInfo(SdrObjTransformInfoRec& 
rInfo) const
     rInfo.bNoContortion=false;
 
     bool bCanConv = !HasText() || ImpCanConvTextToCurve();
-    bool bIsPath = IsBezier() || IsSpline();
+    bool bIsPath = IsBezier();
 
     rInfo.bEdgeRadiusAllowed    = false;
     rInfo.bCanConvToPath = bCanConv && !bIsPath;
@@ -1916,10 +1911,8 @@ OUString SdrPathObj::TakeObjNameSingul() const
         {
             case SdrObjKind::PathLine: sName = 
SvxResId(STR_ObjNameSingulPATHLINE); break;
             case SdrObjKind::FreehandLine: sName = 
SvxResId(STR_ObjNameSingulFREELINE); break;
-            case SdrObjKind::SplineLine: sName = 
SvxResId(STR_ObjNameSingulNATSPLN); break;
             case SdrObjKind::PathFill: sName = 
SvxResId(STR_ObjNameSingulPATHFILL); break;
             case SdrObjKind::FreehandFill: sName = 
SvxResId(STR_ObjNameSingulFREEFILL); break;
-            case SdrObjKind::SplineFill: sName = 
SvxResId(STR_ObjNameSingulPERSPLN); break;
             default: break;
         }
     }
@@ -1941,10 +1934,8 @@ OUString SdrPathObj::TakeObjNamePlural() const
         case SdrObjKind::Polygon    : sName=SvxResId(STR_ObjNamePluralPOLY    
); break;
         case SdrObjKind::PathLine: sName=SvxResId(STR_ObjNamePluralPATHLINE); 
break;
         case SdrObjKind::FreehandLine: 
sName=SvxResId(STR_ObjNamePluralFREELINE); break;
-        case SdrObjKind::SplineLine: sName=SvxResId(STR_ObjNamePluralNATSPLN); 
break;
         case SdrObjKind::PathFill: sName=SvxResId(STR_ObjNamePluralPATHFILL); 
break;
         case SdrObjKind::FreehandFill: 
sName=SvxResId(STR_ObjNamePluralFREEFILL); break;
-        case SdrObjKind::SplineFill: sName=SvxResId(STR_ObjNamePluralPERSPLN); 
break;
         default: break;
     }
     return sName;
diff --git a/svx/source/unodraw/unopage.cxx b/svx/source/unodraw/unopage.cxx
index aad73322adda..846e41ae590f 100644
--- a/svx/source/unodraw/unopage.cxx
+++ b/svx/source/unodraw/unopage.cxx
@@ -670,11 +670,9 @@ rtl::Reference<SvxShape> 
SvxDrawPage::CreateShapeByTypeAndInventor( SdrObjKind n
                 case SdrObjKind::PolyLine:
                     pRet = new SvxShapePolyPolygon( pObj );
                     break;
-                case SdrObjKind::SplineLine:
                 case SdrObjKind::PathLine:
                     pRet = new SvxShapePolyPolygon( pObj );
                     break;
-                case SdrObjKind::SplineFill:
                 case SdrObjKind::PathFill:
                     pRet = new SvxShapePolyPolygon( pObj );
                     break;
diff --git a/svx/source/unodraw/unoshap2.cxx b/svx/source/unodraw/unoshap2.cxx
index 0315d2a5c74e..e2b11927e59a 100644
--- a/svx/source/unodraw/unoshap2.cxx
+++ b/svx/source/unodraw/unoshap2.cxx
@@ -1132,9 +1132,7 @@ drawing::PolygonKind 
SvxShapePolyPolygon::GetPolygonKind() const
         {
             case SdrObjKind::Polygon:      aRetval = 
drawing::PolygonKind_POLY; break;
             case SdrObjKind::PolyLine:      aRetval = 
drawing::PolygonKind_PLIN; break;
-            case SdrObjKind::SplineLine:
             case SdrObjKind::PathLine:  aRetval = 
drawing::PolygonKind_PATHLINE; break;
-            case SdrObjKind::SplineFill:
             case SdrObjKind::PathFill:  aRetval = 
drawing::PolygonKind_PATHFILL; break;
             case SdrObjKind::FreehandLine:  aRetval = 
drawing::PolygonKind_FREELINE; break;
             case SdrObjKind::FreehandFill:  aRetval = 
drawing::PolygonKind_FREEFILL; break;
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index 38d5ee335af5..0a26c6983ae7 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -1000,8 +1000,6 @@ static bool svx_needLogicRectHack( SdrObject const * pObj 
)
         case SdrObjKind::PathFill:
         case SdrObjKind::FreehandLine:
         case SdrObjKind::FreehandFill:
-        case SdrObjKind::SplineLine:
-        case SdrObjKind::SplineFill:
         case SdrObjKind::Edge:
         case SdrObjKind::PathPoly:
         case SdrObjKind::PathPolyLine:

Reply via email to