To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=93186
------- Additional comments from [EMAIL PROTECTED] Wed Aug 27 16:14:54 +0000
2008 -------
The root cause of this issue is that for the second, copied slide the wrong UNO
API wrapper is created. Here is how this happens but beware, this is not for
the faint of heart.
The copy constructor of the SdrPage class contains the line
*this = rSrcPage;
which calls the assignment operator at a time when the new object is not yet
fully initialized. Especially the virtual function table is not yet properly
set up because the constructor of the derived class (SdPage) is yet to be
called. Ugly as this is, it gets really bad when the assignment operator
eventually triggers a call to createUnoPage().
Because the SdPage constructor has not yet been executed and the vtable is not
yet in its final state, the virtual createUnoPage() method is called at the
wrong class. Instead of SdPage it is called at SdrPage. As a result an
instance of SvxFmDrawPage is created, not SdDrawPage().
This wrong wrapper is then used when the document is saved. Many Impress
specific properties are not saved and when the document is loaded again the page
with the wrong UNO wrapper looks different.
The line
*this = rSrcPage;
is present since 2004 and one might think that this should have lead to problems
earlier. Well, before a recent change the UNO wrappers have been volatile
objects that were disposed when not used. Therefore the wrappers have been
created with the wrong class all along but did not live long enough to cause any
real harm. Only since a recent change the wrappers are kept alive as long as
the SdrPage/SdPage objects. So now the wrong wrappers are not disposed and
cause this and maybe other problems.
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]