From c6f25506b02fbd2a087b7e790283921bf8550206 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Wed, 25 Aug 2021 08:42:39 +0200 Subject: i#114206 sd: unshare shape properties for the same type before insertion Regression from commit 9bd99c08e8662becdd5ac8b47ef6f953c14e65fc (CWS-TOOLING: integrate CWS os128, 2009-06-03), the problem was that the SvxItemPropertySet was both used to store a property map (information about UNO properties) and also as a descriptor for a not yet inserted shape. The above commit improved performance by sharing a single instance of an SvxItemPropertySet for the same shape types: this works for the property map, but doing the same for property values is problematic. In practice, this eliminates the need for a workaround in oox/, the user-visible problem was that loading a document with smartart, then loading a document with group shapes (but without smartart) and saving it would copy information from the first, closed document (!) to the second document. Just removing the oox/ workaround would make make -C oox -sr CppunitTest_oox_drawingml CPPUNIT_TEST_NAME="testGroupShapeSmartArt testTdf131082" fail, unsharing the descriptor piece makes it pass again. Change-Id: Icdff2108ad0da18ce0ade081b1938dd74bc0ae90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120996 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- sd/qa/unit/export-tests-ooxml1.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sd/qa') diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index b191cc62ee76..e2a3f04d2467 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -371,7 +371,7 @@ void SdOOXMLExportTest1::testBnc870233_2() { const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(0)); CPPUNIT_ASSERT(pObjGroup); - const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(0)); + const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(1)); checkFontAttributes(pObj, Color(0x0000ff), EE_CHAR_COLOR); } @@ -379,7 +379,7 @@ void SdOOXMLExportTest1::testBnc870233_2() { const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(1)); CPPUNIT_ASSERT(pObjGroup); - const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(0)); + const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(1)); checkFontAttributes( pObj, Color(0x1F497D), EE_CHAR_COLOR ); } @@ -387,7 +387,7 @@ void SdOOXMLExportTest1::testBnc870233_2() { const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(2)); CPPUNIT_ASSERT(pObjGroup); - const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(0)); + const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(1)); checkFontAttributes(pObj, Color(0xffffff), EE_CHAR_COLOR); } -- cgit