diff options
author | McCabe Maxsted | 2010-10-26 20:28:13 -0700 |
---|---|---|
committer | McCabe Maxsted | 2010-10-26 20:28:13 -0700 |
commit | 0ce836866afbce3a090f2fde91c0f3aa1d2dd95e (patch) | |
tree | 8c9aad9e0971bff4e25303805ddcf2209c5786f6 | |
parent | Fixed media plugin test not compiling (diff) | |
parent | Add missing skin thumbnail to artwork and move them to the right directory. (diff) | |
download | meta-impy-0ce836866afbce3a090f2fde91c0f3aa1d2dd95e.zip meta-impy-0ce836866afbce3a090f2fde91c0f3aa1d2dd95e.tar.gz meta-impy-0ce836866afbce3a090f2fde91c0f3aa1d2dd95e.tar.bz2 meta-impy-0ce836866afbce3a090f2fde91c0f3aa1d2dd95e.tar.xz |
Merge remote branch 'origin/webkit_plugins' into webkit_plugins
-rw-r--r-- | linden/doc/contributions.txt | 47 | ||||
-rw-r--r-- | linden/indra/cmake/ViewerMiscLibs.cmake | 8 | ||||
-rw-r--r-- | linden/indra/llui/llnotifications.cpp | 4 | ||||
-rw-r--r-- | linden/indra/llvfs/llvfs.cpp | 5 | ||||
-rw-r--r-- | linden/indra/newview/llappviewer.cpp | 20 | ||||
-rw-r--r-- | linden/indra/newview/llfeaturemanager.cpp | 11 | ||||
-rw-r--r-- | linden/indra/newview/lltexturecache.cpp | 54 | ||||
-rw-r--r-- | linden/indra/newview/lltexturecache.h | 1 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/textures/textures.xml | 1 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/notifications.xml | 1 | ||||
-rwxr-xr-x | linden/install.xml | 27 | ||||
-rwxr-xr-x | linden/scripts/install.py | 15 |
12 files changed, 98 insertions, 96 deletions
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index 4d3f017..f518911 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt | |||
@@ -62,25 +62,32 @@ Aleric Inglewood | |||
62 | SNOW-766 | 62 | SNOW-766 |
63 | SNOW-796 | 63 | SNOW-796 |
64 | SNOW-800 | 64 | SNOW-800 |
65 | RED-429 | 65 | IMP-429 |
66 | RED-552 | 66 | IMP-552 |
67 | RED-553 | 67 | IMP-553 |
68 | RED-554 | 68 | IMP-554 |
69 | RED-556 | 69 | IMP-556 |
70 | RED-560 | 70 | IMP-560 |
71 | RED-561 | 71 | IMP-561 |
72 | RED-562 | 72 | IMP-562 |
73 | RED-565 | 73 | IMP-565 |
74 | RED-566 | 74 | IMP-566 |
75 | RED-567 | 75 | IMP-567 |
76 | RED-573 | 76 | IMP-573 |
77 | RED-575 | 77 | IMP-575 |
78 | RED-576 | 78 | IMP-576 |
79 | RED-577 | 79 | IMP-577 |
80 | RED-578 | 80 | IMP-578 |
81 | RED-579 | 81 | IMP-579 |
82 | RED-581 | 82 | IMP-581 |
83 | RED-595 | 83 | IMP-595 |
84 | IMP-660 | ||
85 | IMP-661 | ||
86 | IMP-662 | ||
87 | IMP-663 | ||
88 | IMP-664 | ||
89 | IMP-667 | ||
90 | IMP-670 | ||
84 | Alissa Sabre | 91 | Alissa Sabre |
85 | VWR-81 | 92 | VWR-81 |
86 | VWR-83 | 93 | VWR-83 |
@@ -513,7 +520,7 @@ Robin Cornelius | |||
513 | VWR-2488 | 520 | VWR-2488 |
514 | VWR-9557 | 521 | VWR-9557 |
515 | VWR-12838 | 522 | VWR-12838 |
516 | RED-595 | 523 | IMP-595 |
517 | Ryozu Kojima | 524 | Ryozu Kojima |
518 | VWR-53 | 525 | VWR-53 |
519 | VWR-287 | 526 | VWR-287 |
diff --git a/linden/indra/cmake/ViewerMiscLibs.cmake b/linden/indra/cmake/ViewerMiscLibs.cmake index 7fe1040..35f4e3a 100644 --- a/linden/indra/cmake/ViewerMiscLibs.cmake +++ b/linden/indra/cmake/ViewerMiscLibs.cmake | |||
@@ -8,6 +8,14 @@ if (NOT STANDALONE) | |||
8 | use_prebuilt_binary(32bitcompatibilitylibs) | 8 | use_prebuilt_binary(32bitcompatibilitylibs) |
9 | endif(LINUX AND ${ARCH} STREQUAL "x86_64") | 9 | endif(LINUX AND ${ARCH} STREQUAL "x86_64") |
10 | use_prebuilt_binary(fontconfig) | 10 | use_prebuilt_binary(fontconfig) |
11 | else (NOT STANDALONE) | ||
12 | # Download there even when using standalone. | ||
13 | set(STANDALONE OFF) | ||
14 | use_prebuilt_binary(vivox) | ||
15 | if(LINUX AND ${ARCH} STREQUAL "x86_64") | ||
16 | use_prebuilt_binary(32bitcompatibilitylibs) | ||
17 | endif(LINUX AND ${ARCH} STREQUAL "x86_64") | ||
18 | set(STANDALONE ON) | ||
11 | endif(NOT STANDALONE) | 19 | endif(NOT STANDALONE) |
12 | 20 | ||
13 | if (WINDOWS) | 21 | if (WINDOWS) |
diff --git a/linden/indra/llui/llnotifications.cpp b/linden/indra/llui/llnotifications.cpp index 2459110..4d3ff46 100644 --- a/linden/indra/llui/llnotifications.cpp +++ b/linden/indra/llui/llnotifications.cpp | |||
@@ -1190,13 +1190,13 @@ void replaceSubstitutionStrings(LLXMLNodePtr node, StringMap& replacements) | |||
1190 | if (found != replacements.end()) | 1190 | if (found != replacements.end()) |
1191 | { | 1191 | { |
1192 | replacement = found->second; | 1192 | replacement = found->second; |
1193 | //llwarns << "replaceSubstituionStrings: value: " << value << " repl: " << replacement << llendl; | 1193 | //llinfos << "replaceSubstitutionStrings: value: \"" << value << "\" repl: \"" << replacement << "\"." << llendl; |
1194 | 1194 | ||
1195 | it->second->setValue(replacement); | 1195 | it->second->setValue(replacement); |
1196 | } | 1196 | } |
1197 | else | 1197 | else |
1198 | { | 1198 | { |
1199 | llwarns << "replaceSubstituionStrings FAILURE: value: " << value << " repl: " << replacement << llendl; | 1199 | llwarns << "replaceSubstitutionStrings FAILURE: could not find replacement \"" << value << "\"." << llendl; |
1200 | } | 1200 | } |
1201 | } | 1201 | } |
1202 | } | 1202 | } |
diff --git a/linden/indra/llvfs/llvfs.cpp b/linden/indra/llvfs/llvfs.cpp index 7df2a81..9bf5b59 100644 --- a/linden/indra/llvfs/llvfs.cpp +++ b/linden/indra/llvfs/llvfs.cpp | |||
@@ -583,8 +583,9 @@ LLVFS::LLVFS(const std::string& index_filename, const std::string& data_filename | |||
583 | } | 583 | } |
584 | } | 584 | } |
585 | 585 | ||
586 | LL_WARNS("VFS") << "Using index file " << mIndexFilename << LL_ENDL; | 586 | // Success! |
587 | LL_WARNS("VFS") << "Using data file " << mDataFilename << LL_ENDL; | 587 | LL_INFOS("VFS") << "Using index file " << mIndexFilename << LL_ENDL; |
588 | LL_INFOS("VFS") << "Using data file " << mDataFilename << LL_ENDL; | ||
588 | 589 | ||
589 | mValid = VFSVALID_OK; | 590 | mValid = VFSVALID_OK; |
590 | } | 591 | } |
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index 545b7e4..5b34e82 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp | |||
@@ -442,8 +442,6 @@ static void settings_to_globals() | |||
442 | gMapScale = gSavedSettings.getF32("MapScale"); | 442 | gMapScale = gSavedSettings.getF32("MapScale"); |
443 | LLHoverView::sShowHoverTips = gSavedSettings.getBOOL("ShowHoverTips"); | 443 | LLHoverView::sShowHoverTips = gSavedSettings.getBOOL("ShowHoverTips"); |
444 | 444 | ||
445 | LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap"); | ||
446 | |||
447 | LLSlider::setScrollWheelMultiplier( gSavedSettings.getS32("SliderScrollWheelMultiplier") ); | 445 | LLSlider::setScrollWheelMultiplier( gSavedSettings.getS32("SliderScrollWheelMultiplier") ); |
448 | 446 | ||
449 | LLHUDEffectLookAt::sDebugLookAt = gSavedSettings.getBOOL("PersistShowLookAt"); | 447 | LLHUDEffectLookAt::sDebugLookAt = gSavedSettings.getBOOL("PersistShowLookAt"); |
@@ -788,6 +786,9 @@ bool LLAppViewer::init() | |||
788 | // | 786 | // |
789 | initWindow(); | 787 | initWindow(); |
790 | 788 | ||
789 | // initWindow also initializes the Feature List, so now we can initialize this global. | ||
790 | LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap"); | ||
791 | |||
791 | { | 792 | { |
792 | BOOL download = gSavedSettings.getBOOL("DownloadClientTags"); | 793 | BOOL download = gSavedSettings.getBOOL("DownloadClientTags"); |
793 | 794 | ||
@@ -2716,35 +2717,32 @@ void LLAppViewer::initMarkerFile() | |||
2716 | std::string llerror_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, LLERROR_MARKER_FILE_NAME); | 2717 | std::string llerror_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, LLERROR_MARKER_FILE_NAME); |
2717 | std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME); | 2718 | std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME); |
2718 | 2719 | ||
2719 | |||
2720 | if (LLAPRFile::isExist(mMarkerFileName, LL_APR_RB) && !anotherInstanceRunning()) | 2720 | if (LLAPRFile::isExist(mMarkerFileName, LL_APR_RB) && !anotherInstanceRunning()) |
2721 | { | 2721 | { |
2722 | gLastExecEvent = LAST_EXEC_FROZE; | 2722 | gLastExecEvent = LAST_EXEC_FROZE; |
2723 | LL_INFOS("MarkerFile") << "Exec marker found: program froze on previous execution" << LL_ENDL; | 2723 | LL_INFOS("MarkerFile") << "Exec marker found: program froze on previous execution" << LL_ENDL; |
2724 | } | 2724 | } |
2725 | |||
2726 | if(LLAPRFile::isExist(logout_marker_file, LL_APR_RB)) | 2725 | if(LLAPRFile::isExist(logout_marker_file, LL_APR_RB)) |
2727 | { | 2726 | { |
2728 | LL_INFOS("MarkerFile") << "Last exec LLError crashed, setting LastExecEvent to " << LAST_EXEC_LLERROR_CRASH << LL_ENDL; | ||
2729 | gLastExecEvent = LAST_EXEC_LOGOUT_FROZE; | 2727 | gLastExecEvent = LAST_EXEC_LOGOUT_FROZE; |
2728 | LL_INFOS("MarkerFile") << "Last exec LLError crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL; | ||
2729 | LLAPRFile::remove(logout_marker_file); | ||
2730 | } | 2730 | } |
2731 | if(LLAPRFile::isExist(llerror_marker_file, LL_APR_RB)) | 2731 | if(LLAPRFile::isExist(llerror_marker_file, LL_APR_RB)) |
2732 | { | 2732 | { |
2733 | llinfos << "Last exec LLError crashed, setting LastExecEvent to " << LAST_EXEC_LLERROR_CRASH << llendl; | ||
2734 | if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; | 2733 | if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; |
2735 | else gLastExecEvent = LAST_EXEC_LLERROR_CRASH; | 2734 | else gLastExecEvent = LAST_EXEC_LLERROR_CRASH; |
2735 | LL_INFOS("MarkerFile") << "Last exec LLError crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL; | ||
2736 | LLAPRFile::remove(llerror_marker_file); | ||
2736 | } | 2737 | } |
2737 | if(LLAPRFile::isExist(error_marker_file, LL_APR_RB)) | 2738 | if(LLAPRFile::isExist(error_marker_file, LL_APR_RB)) |
2738 | { | 2739 | { |
2739 | LL_INFOS("MarkerFile") << "Last exec crashed, setting LastExecEvent to " << LAST_EXEC_OTHER_CRASH << LL_ENDL; | ||
2740 | if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; | 2740 | if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; |
2741 | else gLastExecEvent = LAST_EXEC_OTHER_CRASH; | 2741 | else gLastExecEvent = LAST_EXEC_OTHER_CRASH; |
2742 | LL_INFOS("MarkerFile") << "Last exec crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL; | ||
2743 | LLAPRFile::remove(error_marker_file); | ||
2742 | } | 2744 | } |
2743 | 2745 | ||
2744 | LLAPRFile::remove(logout_marker_file); | ||
2745 | LLAPRFile::remove(llerror_marker_file); | ||
2746 | LLAPRFile::remove(error_marker_file); | ||
2747 | |||
2748 | // No new markers if another instance is running. | 2746 | // No new markers if another instance is running. |
2749 | if(anotherInstanceRunning()) | 2747 | if(anotherInstanceRunning()) |
2750 | { | 2748 | { |
diff --git a/linden/indra/newview/llfeaturemanager.cpp b/linden/indra/newview/llfeaturemanager.cpp index 35613b7..54da31b 100644 --- a/linden/indra/newview/llfeaturemanager.cpp +++ b/linden/indra/newview/llfeaturemanager.cpp | |||
@@ -250,11 +250,9 @@ BOOL LLFeatureManager::loadFeatureTables() | |||
250 | mTableVersion = version; | 250 | mTableVersion = version; |
251 | 251 | ||
252 | LLFeatureList *flp = NULL; | 252 | LLFeatureList *flp = NULL; |
253 | while (!file.eof() && file.good()) | 253 | while (file >> name) |
254 | { | 254 | { |
255 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ | 255 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ |
256 | |||
257 | file >> name; | ||
258 | 256 | ||
259 | if (name.substr(0,2) == "//") | 257 | if (name.substr(0,2) == "//") |
260 | { | 258 | { |
@@ -263,13 +261,6 @@ BOOL LLFeatureManager::loadFeatureTables() | |||
263 | continue; | 261 | continue; |
264 | } | 262 | } |
265 | 263 | ||
266 | if (name.empty()) | ||
267 | { | ||
268 | // This is a blank line | ||
269 | file.getline(buffer, MAX_STRING); | ||
270 | continue; | ||
271 | } | ||
272 | |||
273 | if (name == "list") | 264 | if (name == "list") |
274 | { | 265 | { |
275 | if (flp) | 266 | if (flp) |
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index a9b7f81..a1a9a39 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -1172,7 +1172,7 @@ void LLTextureCache::readHeaderCache() | |||
1172 | U32 empty_entries = 0; | 1172 | U32 empty_entries = 0; |
1173 | typedef std::pair<U32, LLUUID> lru_data_t; | 1173 | typedef std::pair<U32, LLUUID> lru_data_t; |
1174 | std::set<lru_data_t> lru; | 1174 | std::set<lru_data_t> lru; |
1175 | std::vector<LLUUID> purge_list; | 1175 | std::set<LLUUID> purge_list; |
1176 | for (U32 i=0; i<num_entries; i++) | 1176 | for (U32 i=0; i<num_entries; i++) |
1177 | { | 1177 | { |
1178 | Entry& entry = entries[i]; | 1178 | Entry& entry = entries[i]; |
@@ -1191,27 +1191,23 @@ void LLTextureCache::readHeaderCache() | |||
1191 | { | 1191 | { |
1192 | // Shouldn't happen, failsafe only | 1192 | // Shouldn't happen, failsafe only |
1193 | llwarns << "Bad entry: " << i << ": " << entry.mID << ": BodySize: " << entry.mBodySize << llendl; | 1193 | llwarns << "Bad entry: " << i << ": " << entry.mID << ": BodySize: " << entry.mBodySize << llendl; |
1194 | purge_list.push_back(id); | 1194 | purge_list.insert(id); |
1195 | } | 1195 | } |
1196 | } | 1196 | } |
1197 | } | 1197 | } |
1198 | } | 1198 | } |
1199 | if (num_entries > sCacheMaxEntries) | 1199 | if (num_entries - empty_entries > sCacheMaxEntries) |
1200 | { | 1200 | { |
1201 | // Special case: cache size was reduced, need to remove entries | 1201 | // Special case: cache size was reduced, need to remove entries |
1202 | // Note: After we prune entries, we will call this again and create the LRU | 1202 | // Note: After we prune entries, we will call this again and create the LRU |
1203 | U32 entries_to_purge = (num_entries-empty_entries) - sCacheMaxEntries; | 1203 | U32 entries_to_purge = (num_entries - empty_entries) - sCacheMaxEntries; |
1204 | llinfos << "Texture Cache Entries: " << num_entries << " Max: " << sCacheMaxEntries << " Empty: " << empty_entries << " Purging: " << entries_to_purge << llendl; | 1204 | llinfos << "Texture Cache Entries: " << num_entries << " Max: " << sCacheMaxEntries << " Empty: " << empty_entries << " Purging: " << entries_to_purge << llendl; |
1205 | if (entries_to_purge > 0) | 1205 | // We can exit the following loop with the given condition, since if we'd reach the end of the lru set we'd have: |
1206 | // purge_list.size() = lru.size() = num_entries - empty_entries = entries_to_purge + sCacheMaxEntries >= entries_to_purge | ||
1207 | for (std::set<lru_data_t>::iterator iter = lru.begin(); purge_list.size() < entries_to_purge; ++iter) | ||
1206 | { | 1208 | { |
1207 | for (std::set<lru_data_t>::iterator iter = lru.begin(); iter != lru.end(); ++iter) | 1209 | purge_list.insert(iter->second); |
1208 | { | ||
1209 | purge_list.push_back(iter->second); | ||
1210 | if (purge_list.size() >= entries_to_purge) | ||
1211 | break; | ||
1212 | } | ||
1213 | } | 1210 | } |
1214 | llassert_always(purge_list.size() >= entries_to_purge); | ||
1215 | } | 1211 | } |
1216 | else | 1212 | else |
1217 | { | 1213 | { |
@@ -1227,11 +1223,9 @@ void LLTextureCache::readHeaderCache() | |||
1227 | 1223 | ||
1228 | if (purge_list.size() > 0) | 1224 | if (purge_list.size() > 0) |
1229 | { | 1225 | { |
1230 | for (std::vector<LLUUID>::iterator iter = purge_list.begin(); iter != purge_list.end(); ++iter) | 1226 | for (std::set<LLUUID>::iterator iter = purge_list.begin(); iter != purge_list.end(); ++iter) |
1231 | { | 1227 | { |
1232 | mHeaderMutex.unlock(); | 1228 | removeFromCacheLocked(*iter); |
1233 | removeFromCache(*iter); | ||
1234 | mHeaderMutex.lock(); | ||
1235 | } | 1229 | } |
1236 | // If we removed any entries, we need to rebuild the entries list, | 1230 | // If we removed any entries, we need to rebuild the entries list, |
1237 | // write the header, and call this again | 1231 | // write the header, and call this again |
@@ -1250,7 +1244,7 @@ void LLTextureCache::readHeaderCache() | |||
1250 | writeEntriesAndClose(new_entries); | 1244 | writeEntriesAndClose(new_entries); |
1251 | mHeaderMutex.unlock(); // unlock the mutex before calling again | 1245 | mHeaderMutex.unlock(); // unlock the mutex before calling again |
1252 | readHeaderCache(); // repeat with new entries file | 1246 | readHeaderCache(); // repeat with new entries file |
1253 | mHeaderMutex.lock(); | 1247 | return; |
1254 | } | 1248 | } |
1255 | else | 1249 | else |
1256 | { | 1250 | { |
@@ -1345,7 +1339,7 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1345 | if (validate) | 1339 | if (validate) |
1346 | { | 1340 | { |
1347 | validate_idx = gSavedSettings.getU32("CacheValidateCounter"); | 1341 | validate_idx = gSavedSettings.getU32("CacheValidateCounter"); |
1348 | U32 next_idx = (++validate_idx) % 256; | 1342 | U32 next_idx = (validate_idx + 1) % 256; |
1349 | gSavedSettings.setU32("CacheValidateCounter", next_idx); | 1343 | gSavedSettings.setU32("CacheValidateCounter", next_idx); |
1350 | LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Validating: " << validate_idx << LL_ENDL; | 1344 | LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Validating: " << validate_idx << LL_ENDL; |
1351 | } | 1345 | } |
@@ -1388,7 +1382,15 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1388 | { | 1382 | { |
1389 | purge_count++; | 1383 | purge_count++; |
1390 | LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL; | 1384 | LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL; |
1391 | LLAPRFile::remove(filename); | 1385 | if (entries[idx].mBodySize > 0) |
1386 | { | ||
1387 | LLAPRFile::remove(filename); | ||
1388 | } | ||
1389 | else if (LLAPRFile::isExist(filename)) // Sanity check. Shouldn't exist. | ||
1390 | { | ||
1391 | LL_WARNS("TextureCache") << "Entry has zero body size but existing " << filename << ". Deleting file too..." << LL_ENDL; | ||
1392 | LLAPRFile::remove(filename); | ||
1393 | } | ||
1392 | cache_size -= entries[idx].mBodySize; | 1394 | cache_size -= entries[idx].mBodySize; |
1393 | mTexturesSizeTotal -= entries[idx].mBodySize; | 1395 | mTexturesSizeTotal -= entries[idx].mBodySize; |
1394 | entries[idx].mBodySize = 0; | 1396 | entries[idx].mBodySize = 0; |
@@ -1615,7 +1617,6 @@ bool LLTextureCache::removeHeaderCacheEntry(const LLUUID& id) | |||
1615 | { | 1617 | { |
1616 | if (!mReadOnly) | 1618 | if (!mReadOnly) |
1617 | { | 1619 | { |
1618 | LLMutexLock lock(&mHeaderMutex); | ||
1619 | Entry entry; | 1620 | Entry entry; |
1620 | S32 idx = openAndReadEntry(id, entry, false); | 1621 | S32 idx = openAndReadEntry(id, entry, false); |
1621 | if (idx >= 0) | 1622 | if (idx >= 0) |
@@ -1632,17 +1633,26 @@ bool LLTextureCache::removeHeaderCacheEntry(const LLUUID& id) | |||
1632 | return false; | 1633 | return false; |
1633 | } | 1634 | } |
1634 | 1635 | ||
1635 | void LLTextureCache::removeFromCache(const LLUUID& id) | 1636 | void LLTextureCache::removeFromCacheLocked(const LLUUID& id) |
1636 | { | 1637 | { |
1637 | //llwarns << "Removing texture from cache: " << id << llendl; | 1638 | //llwarns << "Removing texture from cache: " << id << llendl; |
1638 | if (!mReadOnly) | 1639 | if (!mReadOnly) |
1639 | { | 1640 | { |
1640 | removeHeaderCacheEntry(id); | 1641 | removeHeaderCacheEntry(id); |
1641 | LLMutexLock lock(&mHeaderMutex); | ||
1642 | LLAPRFile::remove(getTextureFileName(id)); | 1642 | LLAPRFile::remove(getTextureFileName(id)); |
1643 | } | 1643 | } |
1644 | } | 1644 | } |
1645 | 1645 | ||
1646 | void LLTextureCache::removeFromCache(const LLUUID& id) | ||
1647 | { | ||
1648 | //llwarns << "Removing texture from cache: " << id << llendl; | ||
1649 | if (!mReadOnly) | ||
1650 | { | ||
1651 | LLMutexLock lock(&mHeaderMutex); | ||
1652 | LLTextureCache::removeFromCacheLocked(id); | ||
1653 | } | ||
1654 | } | ||
1655 | |||
1646 | ////////////////////////////////////////////////////////////////////////////// | 1656 | ////////////////////////////////////////////////////////////////////////////// |
1647 | 1657 | ||
1648 | LLTextureCache::ReadResponder::ReadResponder() | 1658 | LLTextureCache::ReadResponder::ReadResponder() |
diff --git a/linden/indra/newview/lltexturecache.h b/linden/indra/newview/lltexturecache.h index 45804c2..c859b9a 100644 --- a/linden/indra/newview/lltexturecache.h +++ b/linden/indra/newview/lltexturecache.h | |||
@@ -158,6 +158,7 @@ private: | |||
158 | S32 getHeaderCacheEntry(const LLUUID& id, S32& imagesize); | 158 | S32 getHeaderCacheEntry(const LLUUID& id, S32& imagesize); |
159 | S32 setHeaderCacheEntry(const LLUUID& id, S32 imagesize); | 159 | S32 setHeaderCacheEntry(const LLUUID& id, S32 imagesize); |
160 | bool removeHeaderCacheEntry(const LLUUID& id); | 160 | bool removeHeaderCacheEntry(const LLUUID& id); |
161 | void removeFromCacheLocked(const LLUUID& id); | ||
161 | 162 | ||
162 | private: | 163 | private: |
163 | // Internal | 164 | // Internal |
diff --git a/linden/indra/newview/skins/default/textures/textures.xml b/linden/indra/newview/skins/default/textures/textures.xml index f2189a4..60fb4e0 100644 --- a/linden/indra/newview/skins/default/textures/textures.xml +++ b/linden/indra/newview/skins/default/textures/textures.xml | |||
@@ -396,5 +396,6 @@ | |||
396 | <texture name="media_btn_scrollup.png"/> | 396 | <texture name="media_btn_scrollup.png"/> |
397 | <texture name="media_btn_stoploading.png"/> | 397 | <texture name="media_btn_stoploading.png"/> |
398 | <texture name="media_panel_divider.png"/> | 398 | <texture name="media_panel_divider.png"/> |
399 | <texture name="media_panel_scrollbg.png"/> | ||
399 | 400 | ||
400 | </textures> | 401 | </textures> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml index 78295d4..47eea07 100644 --- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml | |||
@@ -7026,6 +7026,7 @@ IM history could not be found for [NAME]. | |||
7026 | type="alert"> | 7026 | type="alert"> |
7027 | Show Look At is a debug setting that displays where an avatar's head is looking. Be aware: this will *NOT* show where an avatar's camera is actually pointed. This setting should not be relied on for any form of privacy! | 7027 | Show Look At is a debug setting that displays where an avatar's head is looking. Be aware: this will *NOT* show where an avatar's camera is actually pointed. This setting should not be relied on for any form of privacy! |
7028 | <usetemplate | 7028 | <usetemplate |
7029 | ignoretext="When setting Show Look At" | ||
7029 | name="okignore" | 7030 | name="okignore" |
7030 | yestext="OK"/> | 7031 | yestext="OK"/> |
7031 | </notification> | 7032 | </notification> |
diff --git a/linden/install.xml b/linden/install.xml index 09a58e7..4a6cb23 100755 --- a/linden/install.xml +++ b/linden/install.xml | |||
@@ -176,33 +176,12 @@ | |||
176 | <string>creative commons attribution-share alike 3.0</string> | 176 | <string>creative commons attribution-share alike 3.0</string> |
177 | <key>packages</key> | 177 | <key>packages</key> |
178 | <map> | 178 | <map> |
179 | <key>darwin</key> | 179 | <key>common</key> |
180 | <map> | ||
181 | <key>md5sum</key> | ||
182 | <string>506d8203676998eab8ccbaaf7bc7415f</string> | ||
183 | <key>url</key> | ||
184 | <uri>http://imprudenceviewer.org/download/extras/imprudence-artwork-20101017.tar.bz2</uri> | ||
185 | </map> | ||
186 | <key>linux</key> | ||
187 | <map> | ||
188 | <key>md5sum</key> | ||
189 | <string>506d8203676998eab8ccbaaf7bc7415f</string> | ||
190 | <key>url</key> | ||
191 | <uri>http://imprudenceviewer.org/download/extras/imprudence-artwork-20101017.tar.bz2</uri> | ||
192 | </map> | ||
193 | <key>linux64</key> | ||
194 | <map> | ||
195 | <key>md5sum</key> | ||
196 | <string>506d8203676998eab8ccbaaf7bc7415f</string> | ||
197 | <key>url</key> | ||
198 | <uri>http://imprudenceviewer.org/download/extras/imprudence-artwork-20101017.tar.bz2</uri> | ||
199 | </map> | ||
200 | <key>windows</key> | ||
201 | <map> | 180 | <map> |
202 | <key>md5sum</key> | 181 | <key>md5sum</key> |
203 | <string>506d8203676998eab8ccbaaf7bc7415f</string> | 182 | <string>a2cde4f24bdcc260b661e139846b8acd</string> |
204 | <key>url</key> | 183 | <key>url</key> |
205 | <uri>http://imprudenceviewer.org/download/extras/imprudence-artwork-20101017.tar.bz2</uri> | 184 | <uri>http://github.com/downloads/AlericInglewood/imprudence/imprudence-artwork-20101026.tar.bz2</uri> |
206 | </map> | 185 | </map> |
207 | </map> | 186 | </map> |
208 | </map> | 187 | </map> |
diff --git a/linden/scripts/install.py b/linden/scripts/install.py index a16034f..f09fc48 100755 --- a/linden/scripts/install.py +++ b/linden/scripts/install.py | |||
@@ -534,24 +534,24 @@ windows/i686/vs/2003 -- specify a windows visual studio 2003 package""" | |||
534 | platform, | 534 | platform, |
535 | cache_dir)) | 535 | cache_dir)) |
536 | to_install = [] | 536 | to_install = [] |
537 | to_uninstall = [] | ||
537 | #print "self._installed",self._installed | 538 | #print "self._installed",self._installed |
538 | for ifile in ifiles: | 539 | for ifile in ifiles: |
539 | if ifile.pkgname not in self._installed: | 540 | if ifile.pkgname not in self._installed: |
540 | to_install.append(ifile) | 541 | to_install.append(ifile) |
541 | elif ifile.url not in self._installed[ifile.pkgname].urls(): | 542 | elif ifile.url not in self._installed[ifile.pkgname].urls(): |
543 | to_uninstall.append(ifile.pkgname) | ||
542 | to_install.append(ifile) | 544 | to_install.append(ifile) |
543 | elif ifile.md5sum != \ | 545 | elif ifile.md5sum != \ |
544 | self._installed[ifile.pkgname].get_md5sum(ifile.url): | 546 | self._installed[ifile.pkgname].get_md5sum(ifile.url): |
545 | # *TODO: We may want to uninstall the old version too | 547 | to_uninstall.append(ifile.pkgname) |
546 | # when we detect it is installed, but the md5 sum is | ||
547 | # different. | ||
548 | to_install.append(ifile) | 548 | to_install.append(ifile) |
549 | else: | 549 | else: |
550 | #print "Installation up to date:", | 550 | #print "Installation up to date:", |
551 | # ifile.pkgname,ifile.platform_path | 551 | # ifile.pkgname,ifile.platform_path |
552 | pass | 552 | pass |
553 | #print "to_install",to_install | 553 | #print "to_install",to_install |
554 | return to_install | 554 | return [to_install, to_uninstall] |
555 | 555 | ||
556 | def _install(self, to_install, install_dir): | 556 | def _install(self, to_install, install_dir): |
557 | for ifile in to_install: | 557 | for ifile in to_install: |
@@ -620,12 +620,17 @@ windows/i686/vs/2003 -- specify a windows visual studio 2003 package""" | |||
620 | cache_dir = os.path.realpath(cache_dir) | 620 | cache_dir = os.path.realpath(cache_dir) |
621 | _mkdir(install_dir) | 621 | _mkdir(install_dir) |
622 | _mkdir(cache_dir) | 622 | _mkdir(cache_dir) |
623 | to_install = self._build_ifiles(platform, cache_dir) | 623 | to_install_uninstall = self._build_ifiles(platform, cache_dir) |
624 | to_install = to_install_uninstall[0] | ||
625 | to_uninstall = to_install_uninstall[1] | ||
624 | 626 | ||
625 | # Filter for files which we actually requested to install. | 627 | # Filter for files which we actually requested to install. |
626 | to_install = [ifl for ifl in to_install if ifl.pkgname in installables] | 628 | to_install = [ifl for ifl in to_install if ifl.pkgname in installables] |
629 | to_uninstall = [ifl for ifl in to_uninstall if ifl in installables] | ||
627 | for ifile in to_install: | 630 | for ifile in to_install: |
628 | ifile.fetch_local() | 631 | ifile.fetch_local() |
632 | if to_uninstall: | ||
633 | self.uninstall(to_uninstall, install_dir) | ||
629 | self._install(to_install, install_dir) | 634 | self._install(to_install, install_dir) |
630 | 635 | ||
631 | def do_install(self, installables, platform, install_dir, cache_dir=None, | 636 | def do_install(self, installables, platform, install_dir, cache_dir=None, |