diff --git a/autobuild.xml b/autobuild.xml index 67dfbf0c4155dcfffb2f2870ca56088fa36ea92f..1554adb98a5090fd50046a4d957fa67f609587fe 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -204,11 +204,11 @@ <key>archive</key> <map> <key>hash</key> - <string>0efbda71b890eb506226ec890bfb15e11e6bd725620f6202a99e4da675cd7deda4684dd8a68d4c35d71bcbda4fcafbdfe97824ab4cbbfa70a1561adbb53c7264</string> + <string>5265fa05c31a7a8fccca5481192ed4f45863e22620d98515e6f1c343eff0e99bf40e392effa7f2a9ce5562edf7d683ce319694b5163cece9ec9f9fb4bc860ac6</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.80.0.1699/boost-1.80.0-darwin64-1699.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1768/boost-1.81.0-darwin64-1768.tar.zst</string> </map> <key>name</key> <string>darwin64</string> @@ -218,11 +218,11 @@ <key>archive</key> <map> <key>hash</key> - <string>6c0ebf87f2765d51c802fd04fc2752a3b179488b2e34e86c80f84d5931b5d4a74136a52e8b80038840741fe61580e0674e151721aaf39e6f2ac6c84922606f57</string> + <string>12b8f815fcb740f990a0e7fe68984f9d481ebd41f9d07d99ebad8f14010958467f8cecb692a782b8d70ecb80c17bb8a23e842b5562b033bd444e0febe2f29c79</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.80.0.1699/boost-1.80.0-linux64-1699.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1768/boost-1.81.0-linux64-1768.tar.zst</string> </map> <key>name</key> <string>linux64</string> @@ -232,18 +232,18 @@ <key>archive</key> <map> <key>hash</key> - <string>229c29faef184e7fa9c7d17e62cc629e6a5fbb00153a10550143a30551cf4984bb4f62fb5384703d20b872eb0b7f7ef89ba43bc16fed6b4e1db5cb6e2797d406</string> + <string>fc6af1d3acd14d7ec9058fdf5bdb363ca9cae1c604414f65f24b48a419919b6c1119fba44805525a2cbfb49fda3d0050e8d4883a52963635220526e01aebd648</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.80.0.1699/boost-1.80.0-windows64-1699.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1768/boost-1.81.0-windows64-1768.tar.zst</string> </map> <key>name</key> <string>windows64</string> </map> </map> <key>version</key> - <string>1.80.0</string> + <string>1.81.0</string> </map> <key>colladadom</key> <map> @@ -262,11 +262,11 @@ <key>archive</key> <map> <key>hash</key> - <string>75fa180957a1b921b11bbc6b3d3f8d04cd5154c8f43b0d8ffeb39a1b020f425826d87f5c15af4978bf21eeb233209f507265fe3cf88fde5604d479f54dcc747a</string> + <string>42534634e4d37ca120baaaaf9a6127f1023b92935e0554da0f8b52ea72f3aa6f5f556481fc586e1e6ac7d2ba8ae229c453fb12212cacb052da83622da9a3c130</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1705/colladadom-2.3.0-darwin64-1705.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1769/colladadom-2.3.0-darwin64-1769.tar.zst</string> </map> <key>name</key> <string>darwin64</string> @@ -276,11 +276,11 @@ <key>archive</key> <map> <key>hash</key> - <string>95439a509974d258cfffbee1a65c755b5958a5b44e6e5fb15ecb694c5bc41e54c0d04a72d36efdb40de4ed1903779d4c3a8226ba7fb5ae1aac9d98bc7b665d3e</string> + <string>427c8c7631dd0a40dcdc1d6230cdc54228d08580ed02aa9ac40b28e0dfd1f9d79fde9a803285e14bbabf2fed082cfd8502cad9f56d9a96df579e5ae68157b548</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1705/colladadom-2.3.0-linux64-1705.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1769/colladadom-2.3.0-linux64-1769.tar.zst</string> </map> <key>name</key> <string>linux64</string> @@ -290,11 +290,11 @@ <key>archive</key> <map> <key>hash</key> - <string>cdd00a4d693c1018982e321d01d18da73a67354c6a24ab7cc68d23a1347484b445f3b99c0cd7a990d29af7db1cafa158c91f60c26fa2c476e9855dad22238eef</string> + <string>eb467d62914cf31d86ed393ef18304e0bd169f89dabc640a0780b346fc9a00284c5f11ee86adb8cc21b69abef37bc78a3bb7292d8b964d6ad652b3daa6a69ce5</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1705/colladadom-2.3.0-windows64-1705.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1769/colladadom-2.3.0-windows64-1769.tar.zst</string> </map> <key>name</key> <string>windows64</string> diff --git a/indra/llappearance/llavatarappearance.h b/indra/llappearance/llavatarappearance.h index 32a3f263fe10cf381fd5e5b5d5b96ee8255b597f..8540fd526b9eda0d847f14f936259f1bc0791193 100644 --- a/indra/llappearance/llavatarappearance.h +++ b/indra/llappearance/llavatarappearance.h @@ -35,7 +35,7 @@ #include "llviewervisualparam.h" #include "llxmltree.h" -#include <absl/container/flat_hash_map.h> +#include "boost/unordered/unordered_flat_map.hpp" class LLTexLayerSet; class LLTexGlobalColor; @@ -142,7 +142,7 @@ class LLAvatarAppearance : public LLCharacter LLVector3 mHeadOffset; // current head position LLAvatarJoint *mRoot; - typedef absl::flat_hash_map<std::string, LLJoint*> joint_map_t; + typedef boost::unordered_flat_map<std::string, LLJoint*> joint_map_t; joint_map_t mJointMap; typedef std::map<std::string, LLVector3> joint_state_map_t; diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp index 314b640e0a2aa04f97cd20e22011465a5eb67a41..49df1c4f1180b3d0e05ee02417c1b581031deb5a 100644 --- a/indra/llaudio/llaudioengine.cpp +++ b/indra/llaudio/llaudioengine.cpp @@ -1257,23 +1257,23 @@ void LLAudioEngine::logSoundPlay(const LLUUID& id, LLVector3d position, S32 type if (mSoundHistory.size() > 2048) return; // Might clear out oldest entries before giving up? - LLSoundHistoryItem item; - item.mID = id; - item.mPosition = position; - item.mType = type; - item.mAssetID = assetid; - item.mOwnerID = ownerid; - item.mSourceID = sourceid; - item.mPlaying = true; - item.mTimeStarted = LLTimer::getElapsedSeconds(); - item.mTimeStopped = F64_MAX; - item.mIsTrigger = is_trigger; - item.mIsLooped = is_looped; + auto item = std::make_unique<LLSoundHistoryItem>(); + item->mID = id; + item->mPosition = position; + item->mType = type; + item->mAssetID = assetid; + item->mOwnerID = ownerid; + item->mSourceID = sourceid; + item->mPlaying = true; + item->mTimeStarted = LLTimer::getElapsedSeconds(); + item->mTimeStopped = F64_MAX; + item->mIsTrigger = is_trigger; + item->mIsLooped = is_looped; - item.mReviewed = false; - item.mReviewedCollision = false; + item->mReviewed = false; + item->mReviewedCollision = false; - mSoundHistory.insert_or_assign(id, item); + mSoundHistory.insert_or_assign(id, std::move(item)); } void LLAudioEngine::logSoundStop(const LLUUID& id) @@ -1281,7 +1281,7 @@ void LLAudioEngine::logSoundStop(const LLUUID& id) auto iter = mSoundHistory.find(id); if (iter != mSoundHistory.end()) { - LLSoundHistoryItem& hist_item = iter->second; + LLSoundHistoryItem& hist_item = *iter->second; hist_item.mPlaying = false; hist_item.mTimeStopped = LLTimer::getElapsedSeconds(); pruneSoundLog(); @@ -1297,13 +1297,13 @@ void LLAudioEngine::pruneSoundLog() { auto iter = mSoundHistory.begin(); auto end = mSoundHistory.end(); - U64 lowest_time = (*iter).second.mTimeStopped; + U64 lowest_time = (*iter).second->mTimeStopped; LLUUID lowest_id = (*iter).first; for (; iter != end; ++iter) { - if ((*iter).second.mTimeStopped < lowest_time) + if ((*iter).second->mTimeStopped < lowest_time) { - lowest_time = (*iter).second.mTimeStopped; + lowest_time = (*iter).second->mTimeStopped; lowest_id = (*iter).first; } } diff --git a/indra/llaudio/llaudioengine.h b/indra/llaudio/llaudioengine.h index 95cc3870d764221dc3992065d5095b8d083e38df..5ced89ccfaa16b3cd6250689f409df7c0ec89401 100644 --- a/indra/llaudio/llaudioengine.h +++ b/indra/llaudio/llaudioengine.h @@ -40,8 +40,7 @@ #include "llextendedstatus.h" #include "lllistener.h" -#include "absl/container/node_hash_map.h" -#include "absl/container/flat_hash_map.h" +#include "boost/unordered/unordered_flat_map.hpp" const F32 LL_WIND_UPDATE_INTERVAL = 0.1f; const F32 LL_WIND_UNDERWATER_CENTER_FREQ = 20.f; @@ -222,8 +221,8 @@ class LLAudioEngine // A list of all audio sources that are known to the viewer at this time. // This is most likely a superset of the ones that we actually have audio // data for, or are playing back. - typedef absl::flat_hash_map<LLUUID, LLAudioSource *> source_map; - typedef absl::flat_hash_map<LLUUID, LLAudioData *> data_map; + typedef boost::unordered_flat_map<LLUUID, LLAudioSource *> source_map; + typedef boost::unordered_flat_map<LLUUID, LLAudioData *> data_map; source_map mAllSources; data_map mAllData; @@ -251,7 +250,7 @@ class LLAudioEngine private: S32 mSoundHistoryPruneCounter = 0; - using sound_history_map = absl::node_hash_map<LLUUID, LLSoundHistoryItem>; + using sound_history_map = boost::unordered_flat_map<LLUUID, std::unique_ptr<LLSoundHistoryItem>>; sound_history_map mSoundHistory; private: void setDefaults(); @@ -362,7 +361,7 @@ class LLAudioSource LLAudioData *mCurrentDatap; LLAudioData *mQueuedDatap; - typedef absl::flat_hash_map<LLUUID, LLAudioData *> data_map; + typedef boost::unordered_flat_map<LLUUID, LLAudioData *> data_map; data_map mPreloadMap; LLFrameTimer mAgeTimer; diff --git a/indra/llcharacter/llanimationstates.h b/indra/llcharacter/llanimationstates.h index 244f811bf52d608aa7dcbe7805afea4aa30eb04e..69e7316467a6c52aa223a7224fcacdb2cf376740 100644 --- a/indra/llcharacter/llanimationstates.h +++ b/indra/llcharacter/llanimationstates.h @@ -28,7 +28,7 @@ #define LL_LLANIMATIONSTATES_H #include <map> -#include <absl/container/flat_hash_map.h> +#include "boost/unordered/unordered_flat_map.hpp" #include "llstringtable.h" #include "lluuid.h" @@ -204,7 +204,7 @@ class LLAnimationLibrary private: LLStringTable mAnimStringTable; - typedef absl::flat_hash_map<LLUUID, char *> anim_map_t; + typedef boost::unordered_flat_map<LLUUID, char *> anim_map_t; anim_map_t mAnimMap; public: diff --git a/indra/llcommon/lluuid.h b/indra/llcommon/lluuid.h index 78c4bd52c670fe65b65bdcafd068a96628461f63..c11e31127c807b9d5ad88dbdd1e1ab2b40726ae9 100644 --- a/indra/llcommon/lluuid.h +++ b/indra/llcommon/lluuid.h @@ -193,9 +193,9 @@ class LL_COMMON_API LLUUID // END BOOST - inline size_t hash() const + friend std::size_t hash_value(LLUUID const& id) { - return absl::Hash<LLUUID>{}(*this); + return boost::hash_range(id.mData, id.mData + UUID_BYTES); } template <typename H> @@ -301,18 +301,7 @@ namespace std { { size_t operator()(const LLUUID & id) const { - return id.hash(); - } - }; -} - -namespace boost -{ - template <> struct hash<LLUUID> - { - size_t operator()(const LLUUID& id) const - { - return id.hash(); + return boost::hash_range(id.mData, id.mData + UUID_BYTES); } }; } diff --git a/indra/newview/alfloaterexploresounds.cpp b/indra/newview/alfloaterexploresounds.cpp index cde36f30637914e7bfe2ee2885d2fe67f482402d..0a9ff9eb107f1dd052e06d609f7a6137cd4863e4 100644 --- a/indra/newview/alfloaterexploresounds.cpp +++ b/indra/newview/alfloaterexploresounds.cpp @@ -113,7 +113,7 @@ LLSoundHistoryItem ALFloaterExploreSounds::getItem(const LLUUID& itemID) auto found = sound_log.find(itemID); if (found != sound_log.end()) { - return found->second; + return *found->second; } else { @@ -187,7 +187,7 @@ BOOL ALFloaterExploreSounds::tick() { for (const auto& sound_pair : gAudiop->getSoundLog()) { - history.push_back(sound_pair.second); + history.push_back(*sound_pair.second); } LLSoundHistoryItemCompare c; history.sort(c); @@ -442,8 +442,8 @@ void ALFloaterExploreSounds::handleStop() auto iter = sound_log.find(item.mID); if (iter != sound_log.end()) { - iter->second.mPlaying = false; - iter->second.mTimeStopped = LLTimer::getElapsedSeconds(); + iter->second->mPlaying = false; + iter->second->mTimeStopped = LLTimer::getElapsedSeconds(); } else { diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h index e8015100ba92fbd898a1e9223613f2f339ab886e..f48797b9190989f079fd8691c4cad9dfe6bdb66d 100644 --- a/indra/newview/llmeshrepository.h +++ b/indra/newview/llmeshrepository.h @@ -41,7 +41,8 @@ #include "httphandler.h" #include "llthread.h" -#include "absl/container/node_hash_map.h" +#include "boost/unordered/unordered_map.hpp" +#include "boost/unordered/unordered_flat_map.hpp" #define LLCONVEXDECOMPINTER_STATIC 1 @@ -212,7 +213,7 @@ class LLMeshRepoThread final : public LLThread LLCondition* mSignal; //map of known mesh headers - typedef absl::node_hash_map<LLUUID, std::pair<U32, LLSD>> mesh_header_map; + typedef boost::unordered_flat_map<LLUUID, std::pair<U32, LLSD>> mesh_header_map; mesh_header_map mMeshHeader; class HeaderRequest : public RequestStats @@ -323,7 +324,7 @@ class LLMeshRepoThread final : public LLThread // End //map of pending header requests and currently desired LODs - typedef absl::node_hash_map<LLUUID, std::vector<S32>> pending_lod_map; + typedef boost::unordered_map<LLUUID, std::vector<S32>> pending_lod_map; pending_lod_map mPendingLOD; // llcorehttp library interface objects. @@ -632,10 +633,10 @@ class LLMeshRepository static void metricsProgress(unsigned int count); static void metricsUpdate(); - typedef absl::node_hash_map<LLUUID, std::vector<LLVOVolume*> > mesh_load_map; + typedef boost::unordered_map<LLUUID, std::vector<LLVOVolume*> > mesh_load_map; mesh_load_map mLoadingMeshes[4]; - typedef absl::flat_hash_map<LLUUID, LLPointer<LLMeshSkinInfo>> skin_map; + typedef boost::unordered_flat_map<LLUUID, LLPointer<LLMeshSkinInfo>> skin_map; skin_map mSkinMap; typedef std::map<LLUUID, LLModel::Decomposition*> decomposition_map; @@ -646,7 +647,7 @@ class LLMeshRepository std::vector<LLMeshRepoThread::LODRequest> mPendingRequests; //list of mesh ids awaiting skin info - typedef absl::node_hash_map<LLUUID, std::vector<LLVOVolume*> > skin_load_map; + typedef boost::unordered_map<LLUUID, std::vector<LLVOVolume*> > skin_load_map; skin_load_map mLoadingSkins; //list of mesh ids that need to send skin info fetch requests