X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55d99c7a77789ff4904bf96eddca3715eb5af9b9..b2bb920ff6dc4868a987976336f74543bcda3046:/src/common/statbar.cpp?ds=sidebyside diff --git a/src/common/statbar.cpp b/src/common/statbar.cpp index 6780e01309..984a9e1278 100644 --- a/src/common/statbar.cpp +++ b/src/common/statbar.cpp @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "statbar.h" #endif @@ -234,7 +234,8 @@ void wxStatusBarBase::FreeStacks() { if(m_statusTextStacks[i]) { - m_statusTextStacks[i]->Clear(); + wxListString& t = *m_statusTextStacks[i]; + WX_CLEAR_LIST(wxListString, t); delete m_statusTextStacks[i]; } } @@ -249,7 +250,11 @@ void wxStatusBarBase::FreeStacks() void wxStatusBarBase::PushStatusText(const wxString& text, int number) { wxListString* st = GetOrCreateStatusStack(number); - st->Insert(new wxString(GetStatusText(number))); + // This long-winded way around avoids an internal compiler error + // in VC++ 6 with RTTI enabled + wxString tmp1(GetStatusText(number)); + wxString* tmp = new wxString(tmp1); + st->Insert(tmp); SetStatusText(text, number); } @@ -257,10 +262,11 @@ void wxStatusBarBase::PopStatusText(int number) { wxListString *st = GetStatusStack(number); wxCHECK_RET( st, _T("Unbalanced PushStatusText/PopStatusText") ); - wxListString::Node *top = st->GetFirst(); + wxListString::compatibility_iterator top = st->GetFirst(); SetStatusText(*top->GetData(), number); - st->DeleteNode(top); + delete top->GetData(); + st->Erase(top); if(st->GetCount() == 0) { delete st; @@ -288,7 +294,6 @@ wxListString *wxStatusBarBase::GetOrCreateStatusStack(int i) if(!m_statusTextStacks[i]) { m_statusTextStacks[i] = new wxListString(); - m_statusTextStacks[i]->DeleteContents(TRUE); } return m_statusTextStacks[i];