CXTPCommandBarsSiteBase memory leak |
Post Reply |
Author | |
terrym
Senior Member Joined: 13 April 2007 Status: Offline Points: 836 |
Post Options
Thanks(0)
Posted: 18 October 2009 at 4:42am |
Excellent
|
|
Thank you,
Terry Mancey email terry@tmancey.ltd.uk | linkedin www.tmancey.ltd.uk | twitter @tmancey |
|
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
yes, sure.
|
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
terrym
Senior Member Joined: 13 April 2007 Status: Offline Points: 836 |
Post Options
Thanks(0)
|
Did this make fix for 13.2?
|
|
Thank you,
Terry Mancey email terry@tmancey.ltd.uk | linkedin www.tmancey.ltd.uk | twitter @tmancey |
|
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
Hi,
Thanks, indeed we didn't catch such scenario. I will add same fix code.
Thanks. |
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
znakeeye
Senior Member Joined: 26 July 2006 Status: Offline Points: 1672 |
Post Options
Thanks(0)
|
Hmmm, why not destroy the command-bar in OnDestroy()?
|
|
PokerMemento - http://www.pokermemento.com/
|
|
znakeeye
Senior Member Joined: 26 July 2006 Status: Offline Points: 1672 |
Post Options
Thanks(0)
|
XTP 12.0.1, but I think this is present in all versions.
class CMyPane : public CXTPFrameWndBase<CWnd>
...
int CMyPane::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CXTPFrameWndBase<CWnd>::OnCreate(lpCreateStruct) == -1)
return -1;
InitCommandBars();
...
}
In my application this window is created, destroyed and then created again - without destroying the CMyPane-object:
m_myPane.Destroy();
...
m_myPane.Create(...); // MEMORY LEAK!
The error lies in XTPFrameWnd.h. Obviously, you don't think about the above scenario!
virtual BOOL InitCommandBars(CRuntimeClass* pCommandBarsClass = RUNTIME_CLASS(CXTPCommandBars))
{ // Begin FIX
if (m_pCommandBars)
{ m_pCommandBars->InternalRelease(); } // End FIX ASSERT(pCommandBarsClass->IsDerivedFrom(RUNTIME_CLASS(CXTPCommandBars))); m_pCommandBars = (CXTPCommandBars*) pCommandBarsClass->CreateObject(); ASSERT(m_pCommandBars); if (!m_pCommandBars) return FALSE; m_pCommandBars->SetSite(this); m_pCommandBars->EnableDocking(); return TRUE; } |
|
PokerMemento - http://www.pokermemento.com/
|
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |