DocxAttributeOutput::WritePostponedDMLDrawing: allow recursion
This method calls DocxSdrExport::writeDMLDrawing(), which may call back WriteTextBox(), which may call WritePostponedDMLDrawing() again. The result is that we try to flush drawings inside a shape which were postponed outside of it. Luckily, StartRunProperties() asserts this, so instaed of silent corruption, such an attempt crashes. Fix the crash by saving the postponed drawings on the stack, and restoring them after the shape export finished. CppunitTest_sw_ooxmlsdrexport's testAnchorIdForWP14AndW14 is a reproducer for this problem (when shape with text is imported as shape with textbox). Change-Id: Id5aeda33472655697717401c24dd54e7efabacd9
Showing
Please
register
or
sign in
to comment