Issue 120677 - There is always one sd::framework::FrameworkHelper object object not released when open a sd document
There is always one sd::framework::FrameworkHelper object object not released...
Product: Impress
Classification: Application
Component: code
All All
: P3 Normal (vote)
: 4.0.0
Assigned To: zhang jianfang
Depends on:
Blocks: 120975
  Show dependency treegraph
Reported: 2012-08-23 07:55 UTC by zhang jianfang
Modified: 2013-07-12 10:45 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---

sd.FrameworkHelper.cxx.patch (520 bytes, patch)
2012-08-23 08:09 UTC, zhang jianfang
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description zhang jianfang 2012-08-23 07:55:28 UTC
When opening a sd document, it creates a FrameworkHelper for each viewshell in api FrameworkHelper::Instance(), but it always not released when closing documents.
Comment 1 zhang jianfang 2012-08-23 08:09:51 UTC
Created attachment 79089 [details]

SdGlobalResourceContainer is designed for controling the lifetime of some singleton objects (See comments in file sd\inc\sdmod.hxx). But FrameworkHelper is not a singleton object, for each document/shell, it creates one object (see sd::ViewShellBase::GetMainViewShell() api). It is meaningless to put the created FrameworkHelper object into SdGlobalResourceContainer but memory leak.

FrameworkHelper class keeps it's own static maInstanceMap list to keep the created objects, when an object are safe to be destroyed, it is removed from maInstanceMap list in API FrameworkHelper::ReleaseInstance().

So it is safe not to to put the created FrameworkHelper object into SdGlobalResourceContainer.
Comment 2 SVN Robot 2012-09-05 03:18:54 UTC
"zhangjf" committed SVN revision 1380959 into trunk:
#i120677#, prevent putting non singleton object FrameworkHelper into SdGlobal...
Comment 3 zhang jianfang 2012-09-05 03:19:34 UTC
Change to resolved state