-
- Downloads
MAINT-5506: Fix ugly timing bug in llurlentry static initialization.
The problem was that class-static LLUrlEntryParcel::sRegionHost was being initialized by copying class-static LLHost::invalid. Naturally, these two statics are initialized in different source files. Since C++ makes no promises about the relative order in which objects in different object files are initialized, it seems we hit a case in which we were trying to initialize sRegionHost by copying a completely uninitialized LLHost::invalid. In general we might attempt to address such cross-translation-unit issues by introducing an LLSingleton. But in this particular case, the punch line is that LLHost::invalid is explicitly constructed identically to a default-constructed LLHost! In other words, LLHost::invalid provides nothing we couldn't get from LLHost(). All it gives us is an opportunity for glitches such as the above. Remove LLHost::invalid and all references, replacing with LLHost().
Showing
- indra/llmessage/llassetstorage.cpp 1 addition, 1 deletionindra/llmessage/llassetstorage.cpp
- indra/llmessage/llcachename.cpp 1 addition, 1 deletionindra/llmessage/llcachename.cpp
- indra/llmessage/llhost.cpp 0 additions, 2 deletionsindra/llmessage/llhost.cpp
- indra/llmessage/llhost.h 0 additions, 2 deletionsindra/llmessage/llhost.h
- indra/llmessage/message.cpp 1 addition, 1 deletionindra/llmessage/message.cpp
- indra/llui/llurlentry.cpp 2 additions, 2 deletionsindra/llui/llurlentry.cpp
- indra/llui/tests/llurlentry_stub.cpp 0 additions, 2 deletionsindra/llui/tests/llurlentry_stub.cpp
- indra/newview/llagent.cpp 1 addition, 1 deletionindra/newview/llagent.cpp
- indra/newview/llfloatergodtools.cpp 3 additions, 3 deletionsindra/newview/llfloatergodtools.cpp
- indra/newview/llpreviewnotecard.cpp 1 addition, 1 deletionindra/newview/llpreviewnotecard.cpp
- indra/newview/llpreviewscript.cpp 1 addition, 1 deletionindra/newview/llpreviewscript.cpp
- indra/newview/lltexturefetch.cpp 4 additions, 4 deletionsindra/newview/lltexturefetch.cpp
- indra/newview/llviewerobject.cpp 3 additions, 3 deletionsindra/newview/llviewerobject.cpp
- indra/newview/llviewertexture.h 3 additions, 3 deletionsindra/newview/llviewertexture.h
- indra/newview/llviewertexturelist.cpp 1 addition, 1 deletionindra/newview/llviewertexturelist.cpp
- indra/newview/llvoavatar.cpp 1 addition, 1 deletionindra/newview/llvoavatar.cpp
Loading
Please register or sign in to comment