https://issues.apache.org/ooo/show_bug.cgi?id=124073

--- Comment #23 from Armin Le Grand <[email protected]> ---
Got cppu with debug and analyzed deeper; the original statement does first
alloc mem, then call constructor. In constructor the sequence gets refcounted
locally, not copied. The access to it using operator[] *does* explicitely
create a copy before assigment of the new reference (not the operator[] const),
so all okay in win version. If mac really does asign first and then call
constructor, the problem is clear. Changing statement to hold a temp ptr to the
result.
BTW: The MaskPrimitive2D is only added since the metafile imported has a bigger
internal size than the PrefSize says. Unfortunately it has shown over time that
such metafiles exist, what should not be the case.
Checked with changed statement, works the same on win and should avoid the
critical section for compilers who do things differently. Please check using

                            MaskPrimitive2D* pMaskPrimitive2D = new
MaskPrimitive2D(
                                basegfx::B2DPolyPolygon(aMaskPolygon),
                                aRetval);
                            aRetval[0] = pMaskPrimitive2D;

instead of the previous version.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are watching all bug changes.

Reply via email to