diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-12-12 16:56:52 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-12-12 18:25:44 +0100 |
commit | 23cfd3d1004f5ddda8cd79878c00b6c64f20068c (patch) | |
tree | e7eb9d7723a7ac1ebf4099df99a2d5198a688381 /include/svl/intitem.hxx | |
parent | 3e59716375a240576fd6d8759b32b4319506ed70 (diff) |
ScShapeChild has broken copy functions
...as its dtor calls mpAccShape->dispose() on the copied pointer member, thus
potentially calling dispose too early (and multiple times, but which in itself
should be harmless). The copy functions are used when vectors of ScShapeChild
(as used in ScShapeRange) get sorted with std::stort (which requires
ScShapeChild to be moveable, but as the move functions are implicitly deleted
because of the user-declared dtor, the implicitly defined copy functions are
used instead).
So turn ScShapeChild into a move-only class, clearing mpAccShape in moved-from
instances.
(The issue appears to exist ever since the code got introduced with
e916b33bde0e863d33fdbb09dfd08c847ab76f20 "#95584#; add notes and shape support".
It was found with Clang 10 trunk -Wdeprecated-copy-dtor.)
Change-Id: Ib71262048c5af3f02716d03c3acd7d977bc66e07
Reviewed-on: https://gerrit.libreoffice.org/85066
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'include/svl/intitem.hxx')
0 files changed, 0 insertions, 0 deletions