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.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index e1a0fe2..09d1141 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -1156,16 +1156,24 @@ bool LLAppViewer::cleanup()
1156 1156
1157 llinfos << "Global stuff deleted" << llendflush; 1157 llinfos << "Global stuff deleted" << llendflush;
1158 1158
1159#if !LL_RELEASE_FOR_DOWNLOAD
1160 if (gAudiop) 1159 if (gAudiop)
1161 { 1160 {
1162 gAudiop->shutdown(); 1161 bool want_longname = false;
1162 if (gAudiop->getDriverName(want_longname) == "FMOD")
1163 {
1164 // This hack exists because fmod likes to occasionally
1165 // hang forever when shutting down, for no apparent
1166 // reason.
1167 llwarns << "Hack, skipping FMOD audio engine cleanup" << llendflush;
1168 }
1169 else
1170 {
1171 gAudiop->shutdown();
1172 }
1173
1174 delete gAudiop;
1175 gAudiop = NULL;
1163 } 1176 }
1164#else
1165 // This hack exists because fmod likes to occasionally hang forever
1166 // when shutting down for no apparent reason.
1167 llwarns << "Hack, skipping audio engine cleanup" << llendflush;
1168#endif
1169 1177
1170 // Note: this is where LLFeatureManager::getInstance()-> used to be deleted. 1178 // Note: this is where LLFeatureManager::getInstance()-> used to be deleted.
1171 1179
@@ -1176,9 +1184,6 @@ bool LLAppViewer::cleanup()
1176 cleanupSavedSettings(); 1184 cleanupSavedSettings();
1177 llinfos << "Settings patched up" << llendflush; 1185 llinfos << "Settings patched up" << llendflush;
1178 1186
1179 delete gAudiop;
1180 gAudiop = NULL;
1181
1182 // delete some of the files left around in the cache. 1187 // delete some of the files left around in the cache.
1183 removeCacheFiles("*.wav"); 1188 removeCacheFiles("*.wav");
1184 removeCacheFiles("*.tmp"); 1189 removeCacheFiles("*.tmp");
@@ -2301,6 +2306,7 @@ void LLAppViewer::handleViewerCrash()
2301 gDebugInfo["CurrentPath"] = gDirUtilp->getCurPath(); 2306 gDebugInfo["CurrentPath"] = gDirUtilp->getCurPath();
2302 gDebugInfo["SessionLength"] = F32(LLFrameTimer::getElapsedSeconds()); 2307 gDebugInfo["SessionLength"] = F32(LLFrameTimer::getElapsedSeconds());
2303 gDebugInfo["StartupState"] = LLStartUp::getStartupStateString(); 2308 gDebugInfo["StartupState"] = LLStartUp::getStartupStateString();
2309 gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer) getCurrentRSS() >> 10;
2304 2310
2305 if(gLogoutInProgress) 2311 if(gLogoutInProgress)
2306 { 2312 {
@@ -3206,6 +3212,8 @@ void LLAppViewer::idle()
3206 return; 3212 return;
3207 } 3213 }
3208 3214
3215 gViewerWindow->handlePerFrameHover();
3216
3209 /////////////////////////////////////// 3217 ///////////////////////////////////////
3210 // Agent and camera movement 3218 // Agent and camera movement
3211 // 3219 //