*** empty log message ***

svn path=/trunk/boinc/; revision=8791
This commit is contained in:
Rom Walton 2005-11-02 18:28:45 +00:00
parent ff725f9778
commit 6aa03769c4
8 changed files with 138 additions and 90 deletions

View File

@ -13515,3 +13515,19 @@ Charlie 1 Nov 2005
mac_build/ mac_build/
boinc.pbproj/ boinc.pbproj/
project.pbxproj project.pbxproj
Rom 2 Nov 2005
- Catch exceptions thrown by the STL library when vectors may not contain
the requested data. For some reason the list views are trying to
populate themselves with data during a connection cycle which means
the various tabs cache's are empty. We now just return an empty string
in this condition. This should clean up a few crash conditions on
platforms other than Windows.
clientgui/
BOINCBaseView.cpp
MainFrame.cpp
ViewProjects.cpp
ViewResources.cpp
ViewTransfers.cpp
ViewWork.cpp

View File

@ -1372,7 +1372,7 @@ void CMainFrame::OnConnect(CMainFrameEvent&) {
m_pFrameListPanelRenderTimer->Start(); m_pFrameListPanelRenderTimer->Start();
m_pDocumentPollTimer->Start(); m_pDocumentPollTimer->Start();
m_pNotebook->SetSelection(ID_LIST_MESSAGESVIEW - ID_LIST_BASE); m_pNotebook->SetSelection(ID_TASK_MESSAGESVIEW - ID_TASK_BASE);
} }
wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::OnConnect - Function End")); wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::OnConnect - Function End"));

View File

@ -398,9 +398,16 @@ wxInt32 CViewProjects::GetDocCount() {
wxString CViewProjects::OnListGetItemText(long item, long column) const { wxString CViewProjects::OnListGetItemText(long item, long column) const {
CProject* project = m_ProjectCache.at(item); CProject* project = NULL;
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
try {
project = m_ProjectCache.at(item);
} catch ( std::out_of_range ) {
project = NULL;
}
if (project) {
switch(column) { switch(column) {
case COLUMN_PROJECT: case COLUMN_PROJECT:
strBuffer = project->m_strProjectName; strBuffer = project->m_strProjectName;
@ -424,6 +431,7 @@ wxString CViewProjects::OnListGetItemText(long item, long column) const {
strBuffer = project->m_strStatus; strBuffer = project->m_strStatus;
break; break;
} }
}
return strBuffer; return strBuffer;
} }

View File

@ -108,9 +108,16 @@ wxInt32 CViewResources::GetDocCount() {
wxString CViewResources::OnListGetItemText(long item, long column) const { wxString CViewResources::OnListGetItemText(long item, long column) const {
CResource* resource = m_ResourceCache.at(item); CResource* resource = NULL;
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
try {
resource = m_ResourceCache.at(item);
} catch ( std::out_of_range ) {
resource = NULL;
}
if (resource) {
switch(column) switch(column)
{ {
case COLUMN_PROJECT: case COLUMN_PROJECT:
@ -120,6 +127,7 @@ wxString CViewResources::OnListGetItemText(long item, long column) const {
strBuffer = resource->m_strDiskSpace; strBuffer = resource->m_strDiskSpace;
break; break;
} }
}
return strBuffer; return strBuffer;
} }

View File

@ -221,6 +221,13 @@ wxString CViewTransfers::OnListGetItemText(long item, long column) const {
CTransfer* transfer = m_TransferCache.at(item); CTransfer* transfer = m_TransferCache.at(item);
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
try {
transfer = m_TransferCache.at(item);
} catch ( std::out_of_range ) {
transfer = NULL;
}
if (transfer) {
switch(column) { switch(column) {
case COLUMN_PROJECT: case COLUMN_PROJECT:
strBuffer = transfer->m_strProjectName; strBuffer = transfer->m_strProjectName;
@ -244,6 +251,7 @@ wxString CViewTransfers::OnListGetItemText(long item, long column) const {
strBuffer = transfer->m_strStatus; strBuffer = transfer->m_strStatus;
break; break;
} }
}
return strBuffer; return strBuffer;
} }

View File

@ -293,9 +293,16 @@ wxInt32 CViewWork::GetDocCount() {
wxString CViewWork::OnListGetItemText(long item, long column) const { wxString CViewWork::OnListGetItemText(long item, long column) const {
CWork* work = m_WorkCache.at(item); CWork* work = NULL;
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
try {
work = m_WorkCache.at(item);
} catch ( std::out_of_range ) {
work = NULL;
}
if (work) {
switch(column) { switch(column) {
case COLUMN_PROJECT: case COLUMN_PROJECT:
strBuffer = work->m_strProjectName; strBuffer = work->m_strProjectName;
@ -322,6 +329,7 @@ wxString CViewWork::OnListGetItemText(long item, long column) const {
strBuffer = work->m_strStatus; strBuffer = work->m_strStatus;
break; break;
} }
}
return strBuffer; return strBuffer;
} }

View File

@ -147,9 +147,6 @@
Name="Source Files" Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath="..\clientgui\BOINCBaseView.cpp">
</File>
<File <File
RelativePath="..\clientgui\BOINCGUIApp.cpp"> RelativePath="..\clientgui\BOINCGUIApp.cpp">
</File> </File>
@ -235,9 +232,6 @@
<File <File
RelativePath="..\clientgui\_wx_intellisense.h"> RelativePath="..\clientgui\_wx_intellisense.h">
</File> </File>
<File
RelativePath="..\clientgui\BOINCBaseView.h">
</File>
<File <File
RelativePath="..\clientgui\BOINCGUIApp.h"> RelativePath="..\clientgui\BOINCGUIApp.h">
</File> </File>
@ -519,6 +513,12 @@
<Filter <Filter
Name="Views" Name="Views"
Filter=""> Filter="">
<File
RelativePath="..\clientgui\BOINCBaseView.cpp">
</File>
<File
RelativePath="..\clientgui\BOINCBaseView.h">
</File>
<File <File
RelativePath="..\clientgui\ViewMessages.cpp"> RelativePath="..\clientgui\ViewMessages.cpp">
</File> </File>