diff --git a/autobuild.xml b/autobuild.xml index 79ca1cb0f8..abb7dbb3a2 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1932,9 +1932,9 @@ archive hash - 8d0ad384de8fbbc9083cac20258fcb0c + 3b8b0f54c851f136e2a92e1c6ba724a5 url - file:///opt/firestorm/kdu-8.1-darwin64-210931415.tar.bz2 + file:///opt/firestorm/kdu-8.1-darwin64-211970151.tar.bz2 name darwin64 @@ -2539,9 +2539,9 @@ archive hash - 2aa4ec0d72bbe4b755730f1bf92b39e7 + ba49274838d4c6bbd612db969b04e607 url - file:///opt/firestorm/llphysicsextensions_tpv-1.0.542327-darwin64-542327.tar.bz2 + file:///opt/firestorm/llphysicsextensions_tpv-1.0.561414-darwin64-561414.tar.bz2 name darwin64 @@ -2563,9 +2563,9 @@ archive hash - ad9aba5e2c43a37b6530a0d2de64df1c + 30de712d424f179d89dd00c01ded7257 url - file:///c:/cygwin/opt/firestorm/llphysicsextensions_tpv-1.0.542327-windows-542327.tar.bz2 + file:///c:/cygwin/opt/firestorm/llphysicsextensions_tpv-1.0.561414-windows-561414.tar.bz2 name windows @@ -2575,16 +2575,16 @@ archive hash - 46689ff1442a8eccac3a7f3258308e1e + abac12c4a12441704fa8884f1ca043d8 url - file:///c:/cygwin/opt/firestorm/llphysicsextensions_tpv-1.0.542327-windows64-542327.tar.bz2 + file:///c:/cygwin/opt/firestorm/llphysicsextensions_tpv-1.0.561414-windows64-561414.tar.bz2 name windows version - 1.0.542327 + 1.0.561414 mesa diff --git a/indra/llfilesystem/lldiskcache.cpp b/indra/llfilesystem/lldiskcache.cpp index b41c55ab5d..6a6222409e 100644 --- a/indra/llfilesystem/lldiskcache.cpp +++ b/indra/llfilesystem/lldiskcache.cpp @@ -438,23 +438,44 @@ void LLDiskCache::clearCache() #endif if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed()) { + LL_INFOS() << "is a directory: " << mCacheDir << LL_ENDL; // Optimize asset simple disk cache //for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(cache_path, ec), {})) - for (auto& entry : boost::make_iterator_range(boost::filesystem::recursive_directory_iterator(cache_path, ec), {})) + // FIRE-31070: Crash on clearing cache on macOS and Linux + // On Unix-like operating systems, the recursive_directory_iterator gets very unhappy if you + // delete a file out from under it in a for loop. This restructuring to a while loop and + // manually incrementing the iterator avoids the problem. Note that the iterator must be + // incremented *before* deleting the file. + boost::filesystem::recursive_directory_iterator entry(cache_path, ec); + boost::filesystem::recursive_directory_iterator cache_end; + while (entry != cache_end) { - if (boost::filesystem::is_regular_file(entry, ec) && !ec.failed()) + const boost::filesystem::path& remove_entry = entry->path(); + if (boost::filesystem::is_regular_file(remove_entry, ec) && !ec.failed()) { - if (entry.path().string().find(mCacheFilenamePrefix) != std::string::npos) + if (remove_entry.string().find(mCacheFilenamePrefix) != std::string::npos) { - boost::filesystem::remove(entry, ec); + const boost::filesystem::path remove_path = remove_entry; + ++entry; + boost::filesystem::remove(remove_path, ec); if (ec.failed()) { - LL_WARNS() << "Failed to delete cache file " << entry << ": " << ec.message() << LL_ENDL; + LL_WARNS() << "Failed to delete cache file " << remove_path.string() << ": " << ec.message() << LL_ENDL; } } + else + { + ++entry; + } } + else + { + ++entry; + } + // FIRE-31070 } // add static assets into the new cache after clear + LL_INFOS() << "prepopulating new cache " << LL_ENDL; prepopulateCacheWithStatic(); } LL_INFOS() << "Cleared cache " << mCacheDir << LL_ENDL; diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 792c96a173..f6ef8a2731 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -2193,6 +2193,13 @@ void LLTextEditor::showContextMenu(S32 x, S32 y, bool set_cursor_pos) mContextMenu = LLUICtrlFactory::instance().createFromFile("menu_text_editor.xml", LLMenuGL::sMenuContainer, LLMenuHolderGL::child_registry_t::instance()); + // FIRE-31081 defend against null this prt exception in setItemVisible found in BugSplat + if(!mContextMenu) + { + LL_WARNS() << "Failed to create context menu 'menu_text_editor'" << LL_ENDL; + return; + } + // } // Route menu to this class diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index 3d885720b7..9615147637 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -117,9 +117,6 @@ BOOL LLFloaterWebContent::postBuild() // initialize the URL history using the system URL History manager initializeURLHistory(); - // if "Develop" Menu open, sety a flag and change things to be more useful for devs - mDevelopMode = gSavedSettings.getBOOL("QAMode"); - return TRUE; } diff --git a/indra/newview/skins/default/xui/en/floater_how_to.xml b/indra/newview/skins/default/xui/en/floater_how_to.xml index 8eec5a271a..9377724134 100644 --- a/indra/newview/skins/default/xui/en/floater_how_to.xml +++ b/indra/newview/skins/default/xui/en/floater_how_to.xml @@ -10,7 +10,7 @@ single_instance="true" save_visibility="true" save_rect="true" - title="How to" + title="Welcome Island Guidebook" width="310" rel_x="-0.469309" rel_y="-0.011166" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index fac6ec4b43..652472923c 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2657,7 +2657,7 @@ Try enclosing path to the editor with double quotes. Flickr Gestures Grid status - How to + Guidebook Inventory Map Marketplace diff --git a/indra/newview/skins/default/xui/ja/floater_fs_asset_blacklist.xml b/indra/newview/skins/default/xui/ja/floater_fs_asset_blacklist.xml index 572b862494..7c23edc4e6 100644 --- a/indra/newview/skins/default/xui/ja/floater_fs_asset_blacklist.xml +++ b/indra/newview/skins/default/xui/ja/floater_fs_asset_blacklist.xml @@ -31,7 +31,7 @@