To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=98788
------- Additional comments from [email protected] Wed Feb 4 13:16:09 +0000 2009 ------- AW: Problem found. Due to #i9762# where i made OuntlinerParaObject ref-counted and COW, in the described scenario data-parts of those objects use the SDrObject model's pool which gets destroyed when closing the Document. It's the classic problem that SfxItemSets only use a pointer to SfxItemPools and are not safe against the pool's deletion. I was thinking in many directions, e.g. clonig the pools, migrating the sub-data-objects of OutlinerParaObject, usig a static global pool at the OPO were all OPOs data objects are migrated too, etc., but al have their caveats. I will now safe the root problem: That SfxItemSets do not hold the Pool they are based on. To do this i will add a SfxItemPoolHolder and a counter to SfxItemPool. The holder will be a friend of SfxItemPool and change that counter when incarnated/changed on a pool to work on. At the SfxItemPool i will move the destructor to protected and add a static Free method (similar to SdrObject). Thus it will be possible to use the SfxItemPool as before, but also to use it over SfxItemPoolHolder when You want to be sure the pooly stays alive. The 2nd change is to use this mechanism in SfxItemSets. I will use it besides the _pPool pointer as member, so i need to change the constructors and the destructor, but do not have to touch any implementation. All in all this change will allow to hold a SfxItemSet safely and independent from knowing(guessing) it's pool's lifetime, so it will be possible to use them in Primitives (as view as possible, only in svx so far). Basic implementation done. I will now have to build incompatible from svtools to identify all calls to SfxItemPool's destructor and replace them with ::Free(..) calls instead. Preparing, building... --------------------------------------------------------------------- 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]
