On 03/03/2012 01:08 AM, Markus Mohrhard wrote:
[1] fixes a crash when you copy a chart in the document. The problem
is that you should not create a uno::Sequence with new because the
uno::Sequence copy c'tor is creating a flat copy. This will later
result in a double delete.
I think the patch is quite save and fixes a crash and therefore should
be included into at least 3-5 and if still possible in 3-5-1.
Regards,
Markus
[1]
http://cgit.freedesktop.org/libreoffice/core/commit/?id=8f2d3c47ad40039a842fa09d98137155dcfdfe9e
While changing from a pointer-to-Sequence member to a plain Sequence
member is probably a good choice, anyway (as Sequence itself is nothing
more than a pointer to the underlying uno_Sequence data structure), I do
not see how the original code was actually wrong: The Sequence copy
ctor increases the shared _pSequence->nRefCount, while delete, via
Sequence dtor, uno_type_destructData, _destructData, and
idestructSequence decrements nRefCount again, and destroys the shared
uno_Sequence only when the ref count has dropped to zero.
Stephan
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice