svx/source/svdraw/svdobj.cxx |   45 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)

New commits:
commit e03b053fcc2905f999598906fd37fda2c8c9a829
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Sat Apr 1 09:08:43 2023 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Sat Apr 1 11:30:17 2023 +0200

    tdf#154040 writer still needs an "empty" object so create one
    
    For inserting frames writer still relies on an empty SdrObject, so
    create an instance of an empty object when requested to do so.
    
    Change-Id: I8b55318a7fb4b02c9c40de4ca845a804af3e781a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149899
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index c4628f4cd2f2..8f3d2e7eb12a 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -3194,6 +3194,49 @@ rtl::Reference<SdrObject> 
SdrObjFactory::CreateObjectFromFactory(SdrModel& rSdrM
     return nullptr;
 }
 
+namespace
+{
+
+class EmptyObject final : public SdrObject
+{
+private:
+    virtual ~EmptyObject() override
+    {}
+
+public:
+    EmptyObject(SdrModel& rSdrModel)
+        : SdrObject(rSdrModel)
+    {
+    }
+
+    EmptyObject(SdrModel& rSdrModel, EmptyObject const& rSource)
+        : SdrObject(rSdrModel, rSource)
+    {
+    }
+
+    rtl::Reference<SdrObject> CloneSdrObject(SdrModel& rTargetModel) const 
override
+    {
+        return new EmptyObject(rTargetModel, *this);
+    }
+
+    SdrInventor GetObjInventor() const override
+    {
+        return SdrInventor::Default;
+    }
+
+    SdrObjKind GetObjIdentifier() const override
+    {
+        return SdrObjKind::NONE;
+    }
+
+    void NbcRotate(const Point& /*rRef*/, Degree100 /*nAngle*/, double 
/*sinAngle*/, double /*cosAngle*/) override
+    {
+        assert(false);
+    }
+};
+
+} // end anonymous namespace
+
 rtl::Reference<SdrObject> SdrObjFactory::MakeNewObject(
     SdrModel& rSdrModel,
     SdrInventor nInventor,
@@ -3286,7 +3329,7 @@ rtl::Reference<SdrObject> SdrObjFactory::MakeNewObject(
                 }
             }
             break;
-            case SdrObjKind::NONE       : pObj = nullptr; break;
+            case SdrObjKind::NONE: pObj = new EmptyObject(rSdrModel); break;
             case SdrObjKind::Group       : pObj=new SdrObjGroup(rSdrModel);    
             break;
             case SdrObjKind::Polygon       : pObj=new SdrPathObj(rSdrModel, 
SdrObjKind::Polygon       ); break;
             case SdrObjKind::PolyLine       : pObj=new SdrPathObj(rSdrModel, 
SdrObjKind::PolyLine       ); break;

Reply via email to