diff options
Diffstat (limited to 'linden/indra/newview/llappviewer.cpp')
-rw-r--r-- | linden/indra/newview/llappviewer.cpp | 28 |
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 | // |