aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llappviewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llappviewer.cpp')
-rw-r--r--linden/indra/newview/llappviewer.cpp45
1 files changed, 42 insertions, 3 deletions
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index a956555..8fc2578 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -2042,8 +2042,18 @@ bool LLAppViewer::initConfiguration()
2042void LLAppViewer::checkForCrash(void) 2042void LLAppViewer::checkForCrash(void)
2043{ 2043{
2044 2044
2045#if LL_SEND_CRASH_REPORTS 2045#if 1 //*REMOVE:Mani LL_SEND_CRASH_REPORTS
2046 if (gLastExecEvent == LAST_EXEC_FROZE || gLastExecEvent == LAST_EXEC_OTHER_CRASH) 2046 //*NOTE:Mani The current state of the crash handler has the MacOSX
2047 // sending all crash reports as freezes, in order to let
2048 // the MacOSX CrashRepoter generate stacks before spawning the
2049 // SL crash logger.
2050 // The Linux and Windows clients generate their own stacks and
2051 // spawn the SL crash logger immediately. This may change in the future.
2052#if LL_DARWIN
2053 if(gLastExecEvent != LAST_EXEC_NORMAL)
2054#else
2055 if (gLastExecEvent == LAST_EXEC_FROZE || gLastExecEvent == LAST_EXEC_OTHER_CRASH)
2056#endif
2047 { 2057 {
2048 llinfos << "Last execution froze, requesting to send crash report." << llendl; 2058 llinfos << "Last execution froze, requesting to send crash report." << llendl;
2049 // 2059 //
@@ -2286,7 +2296,7 @@ void LLAppViewer::handleViewerCrash()
2286 llinfos << "Handle viewer crash entry." << llendl; 2296 llinfos << "Handle viewer crash entry." << llendl;
2287 2297
2288 //print out recorded call stacks if there are any. 2298 //print out recorded call stacks if there are any.
2289 LLError::LLCallStacks::print() ; 2299 LLError::LLCallStacks::print();
2290 2300
2291 LLAppViewer* pApp = LLAppViewer::instance(); 2301 LLAppViewer* pApp = LLAppViewer::instance();
2292 if (pApp->beingDebugged()) 2302 if (pApp->beingDebugged())
@@ -3729,6 +3739,35 @@ void LLAppViewer::disconnectViewer()
3729 { 3739 {
3730 gFloaterView->restoreAll(); 3740 gFloaterView->restoreAll();
3731 } 3741 }
3742
3743
3744 std::list<LLFloater*> floaters_to_close;
3745 for(LLView::child_list_const_iter_t it = gFloaterView->getChildList()->begin();
3746 it != gFloaterView->getChildList()->end();
3747 ++it)
3748 {
3749 // The following names are defined in the
3750 // floater_image_preview.xml
3751 // floater_sound_preview.xml
3752 // floater_animation_preview.xml
3753 // files.
3754 LLFloater* fl = static_cast<LLFloater*>(*it);
3755 if(fl
3756 && (fl->getName() == "Image Preview"
3757 || fl->getName() == "Sound Preview"
3758 || fl->getName() == "Animation Preview"
3759 ))
3760 {
3761 floaters_to_close.push_back(fl);
3762 }
3763 }
3764
3765 while(!floaters_to_close.empty())
3766 {
3767 LLFloater* fl = floaters_to_close.front();
3768 floaters_to_close.pop_front();
3769 fl->close();
3770 }
3732 } 3771 }
3733 3772
3734 if (LLSelectMgr::getInstance()) 3773 if (LLSelectMgr::getInstance())