Fix a few leaks in the Windows UI code.

This commit is contained in:
Unknown W. Brackets 2014-02-14 21:08:24 -08:00
parent 39d1f4986d
commit 8f09a341df
7 changed files with 25 additions and 2 deletions

View File

@ -60,7 +60,8 @@ CtrlMemView::CtrlMemView(HWND _wnd)
CtrlMemView::~CtrlMemView()
{
DeleteObject(font);
DeleteObject(font);
DeleteObject(underlineFont);
}
void CtrlMemView::init()

View File

@ -171,7 +171,7 @@ CDisasm::CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *_cpu) : Di
bottomTabs->ShowTab(memHandle);
// init status bar
statusBarWnd = CreateStatusWindow(WS_CHILD | WS_VISIBLE, L"", m_hDlg, IDC_DISASMSTATUSBAR);
statusBarWnd = CreateWindowEx(0, STATUSCLASSNAME, L"", WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, m_hDlg, (HMENU)IDC_DISASMSTATUSBAR, _hInstance, NULL);
if (g_Config.bDisplayStatusBar == false)
{
ShowWindow(statusBarWnd,SW_HIDE);
@ -187,6 +187,14 @@ CDisasm::CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *_cpu) : Di
CDisasm::~CDisasm()
{
DestroyWindow(statusBarWnd);
delete leftTabs;
delete bottomTabs;
delete breakpointList;
delete threadList;
delete stackTraceView;
delete moduleList;
}
void CDisasm::stepInto()

View File

@ -78,6 +78,9 @@ LRESULT CALLBACK CtrlDisplayListView::wndProc(HWND hwnd, UINT msg, WPARAM wParam
// Continue with window creation.
return win != NULL;
case WM_NCDESTROY:
delete win;
break;
case WM_SIZE:
win->redraw();
break;

View File

@ -39,6 +39,10 @@ public:
static LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
static CtrlDisplayListView * getFrom(HWND wnd);
HWND GetHWND() {
return wnd;
}
void onPaint(WPARAM wParam, LPARAM lParam);
void onKeyDown(WPARAM wParam, LPARAM lParam);
void onMouseDown(WPARAM wParam, LPARAM lParam, int button);

View File

@ -123,6 +123,7 @@ CGEDebugger::CGEDebugger(HINSTANCE _hInstance, HWND _hParent)
}
CGEDebugger::~CGEDebugger() {
DestroyWindow(displayList->GetHWND());
CleanupPrimPreview();
delete flags;
delete lighting;

View File

@ -138,6 +138,10 @@ namespace W32Util
thread_->detach();
}
AsyncBrowseDialog::~AsyncBrowseDialog() {
delete thread_;
}
bool AsyncBrowseDialog::GetResult(std::string &filename) {
filename = filename_;
return result_;

View File

@ -28,6 +28,8 @@ namespace W32Util
// For a file (OPEN or SAVE.)
AsyncBrowseDialog(Type type, HWND parent, UINT completeMsg, std::wstring title, std::wstring initialFolder, std::wstring filter, std::wstring extension);
~AsyncBrowseDialog();
bool GetResult(std::string &filename);
Type GetType() {
return type_;