diff options
Diffstat (limited to 'linden/indra/newview/llappviewer.cpp')
-rw-r--r-- | linden/indra/newview/llappviewer.cpp | 45 |
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() | |||
2042 | void LLAppViewer::checkForCrash(void) | 2042 | void 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()) |