Issue 120677

Summary: There is always one sd::framework::FrameworkHelper object object not released when open a sd document
Product: Impress Reporter: zhang jianfang <zhangjf>
Component: codeAssignee: zhang jianfang <zhangjf>
Status: CLOSED FIXED QA Contact:
Severity: Normal    
Priority: P3    
Version: 4.0.0-dev   
Target Milestone: 4.0.0   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Issue Depends on:    
Issue Blocks: 120975    
Attachments:
Description Flags
sd.FrameworkHelper.cxx.patch none

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]
sd.FrameworkHelper.cxx.patch

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