summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-08-25 08:42:39 +0200
committerMiklos Vajna <vmiklos@collabora.com>2021-08-25 18:11:43 +0200
commitc6f25506b02fbd2a087b7e790283921bf8550206 (patch)
treeddf8257b16946884e42b857f3f3661c910e1a529 /oox
parent8befed1f019061cd0b0ef06f6b717f5bc77afdee (diff)
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 <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'oox')
-rw-r--r--oox/source/drawingml/shape.cxx8
1 files changed, 0 insertions, 8 deletions
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index b4079c7b6831..fe38fa6b371d 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -980,14 +980,6 @@ Reference< XShape > const & Shape::createAndInsert(
if ( !mxShape.is() )
{
mxShape.set( xServiceFact->createInstance( aServiceName ), UNO_QUERY_THROW );
- if (aServiceName == "com.sun.star.drawing.GroupShape")
- {
- // TODO why is this necessary? A newly created group shape should have an empty
- // grab-bag.
- uno::Reference<beans::XPropertySet> xPropertySet(mxShape, uno::UNO_QUERY);
- beans::PropertyValues aVals;
- xPropertySet->setPropertyValue("InteropGrabBag", uno::makeAny(aVals));
- }
}
Reference< XPropertySet > xSet( mxShape, UNO_QUERY );