summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2011-05-25 14:38:53 -0600
committerXiaohong Bao <bao@lindenlab.com>2011-05-25 14:38:53 -0600
commit8c97ed86ff725b9fea444ac00b4a33e76920e737 (patch)
tree237fc54ce70fec2721c3eb73a65e9a01bf2e95ca
parente5752934be74a84e6ec0ff8cb96974bd1e9060ec (diff)
fix for SH-1624: Crash during viewer startup: LLViewerTextureList::addImageToList
-rw-r--r--indra/newview/llappviewer.cpp13
-rw-r--r--indra/newview/llviewertexturelist.cpp11
-rw-r--r--indra/newview/llviewertexturelist.h1
3 files changed, 19 insertions, 6 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 75b6c18c57..a0be252ab2 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -739,6 +739,8 @@ bool LLAppViewer::init()
}
initThreads();
+ LL_INFOS("InitInfo") << "Threads initialized." << LL_ENDL ; ;
+
writeSystemInfo();
// Initialize updater service (now that we have an io pump)
@@ -765,6 +767,10 @@ bool LLAppViewer::init()
LL_INFOS("InitInfo") << "J2C Engine is: " << LLImageJ2C::getEngineInfo() << LL_ENDL;
LL_INFOS("InitInfo") << "libcurl version is: " << LLCurl::getVersionString() << LL_ENDL;
+ //Note: --bao
+ //allow to start texture fetching, must be called after initThreads();
+ gTextureList.start() ;
+
// Get the single value from the crash settings file, if it exists
std::string crash_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE);
gCrashSettings.loadFromFile(crash_settings_filename);
@@ -773,6 +779,7 @@ bool LLAppViewer::init()
gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, CRASH_BEHAVIOR_ALWAYS_SEND);
gCrashSettings.saveToFile(crash_settings_filename, FALSE);
}
+ LL_INFOS("InitInfo") << "Crash settings done." << LL_ENDL ;
/////////////////////////////////////////////////
// OS-specific login dialogs
@@ -821,6 +828,8 @@ bool LLAppViewer::init()
// Let code in llui access the viewer help floater
LLUI::sHelpImpl = LLViewerHelp::getInstance();
+ LL_INFOS("InitInfo") << "UI initialization is done." << LL_ENDL ;
+
// Load translations for tooltips
LLFloater::initClass();
@@ -890,7 +899,8 @@ bool LLAppViewer::init()
OSMessageBox(msg.str(),LLStringUtil::null,OSMB_OK);
return 1;
}
-
+ LL_INFOS("InitInfo") << "Cache initialization is done." << LL_ENDL ;
+
// Initialize the repeater service.
LLMainLoopRepeater::instance().start();
@@ -899,6 +909,7 @@ bool LLAppViewer::init()
//
gGLActive = TRUE;
initWindow();
+ LL_INFOS("InitInfo") << "Window is initialized." << LL_ENDL ;
// initWindow also initializes the Feature List, so now we can initialize this global.
LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap");
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index cd6653b0c7..a50361add2 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -88,15 +88,16 @@ LLViewerTextureList::LLViewerTextureList()
{
}
-void LLViewerTextureList::init()
+void LLViewerTextureList::start()
{
sRenderThreadID = LLThread::currentID() ;
-
+
mInitialized = TRUE ;
sNumImages = 0;
- mMaxResidentTexMemInMegaBytes = 0;
- mMaxTotalTextureMemInMegaBytes = 0 ;
-
+}
+
+void LLViewerTextureList::init()
+{
mUpdateStats = TRUE;
// Update how much texture RAM we're allowed to use.
diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h
index d02b6be6b5..772f533bbb 100644
--- a/indra/newview/llviewertexturelist.h
+++ b/indra/newview/llviewertexturelist.h
@@ -78,6 +78,7 @@ public:
LLViewerTextureList();
~LLViewerTextureList();
+ void start();
void init();
void shutdown();
void dump();