summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2023-01-05SL-18871 Debug setting's description is not scrollableAndrey Kleshchev
2023-01-04DRTVWR-575: Fix possible bad indexing in LLSD::operator[](size_t).Nat Goodspeed
One could argue that passing a negative index to an LLSD array should do something other than shrug and reference element [0], but as that's legacy behavior, it seems all too likely that the viewer sometimes relies on it. This specific problem arises if the index passed to operator[]() is negative -- either with the previous Integer parameter or with size_t (which of course reinterprets the negative index as hugely positive). The non-const ImplArray::ref() overload checks parameter 'i' and, if it appears negative, sets internal 'index' to 0. But in the next stanza, if (index >= existing size()), it calls resize() to scale the internal array up to one more than the requested index. The trouble is that it passed resize(i + 1), not the adjusted resize(index + 1). With a requested index of exactly -1, that would pass resize(0), which would result in the ensuing array[0] reference being invalid. With a requested index less than -1, that would pass resize(hugely positive) -- since, whether operator[]() accepts signed LLSD::Integer or size_t, resize() accepts std::vector::size_type. Given that the footprint of an LLSD array element is at least a pointer, the number of bytes required for resize(hugely positive) is likely to exceed available heap storage. Passing the adjusted resize(index + 1) should defend against that case.
2023-01-04SL-18904 Remove unused translation filesAndrey Kleshchev
2023-01-04DRTVWR-575: Use llsdutil.h functions for LLFloaterLandHoldings LLSDNat Goodspeed
LLFloaterLandHoldings::postBuild() was constructing an LLSD structure by assigning each map entry and array element one at a time. Chorazinallen identified a crash bug possibly caused by destroying that LLSD structure. Diagnostically try building it using nested llsd::map() and llsd::array() calls instead to see if that improves matters.
2023-01-04DRTVWR-575: Fix bug in macOS micro_sleep().Nat Goodspeed
The compiler was deducing an unsigned type for the difference (U64 desired microseconds - half KERNEL_SLEEP_INTERVAL_US). When the desired sleep was less than that constant, the difference went hugely positive, resulting in a very long snooze. Amusingly, forcing that U64 result into an S32 num_sleep_intervals worked only *because* of integer truncation: the high-order bits were discarded, resulting in a negative result as intended. Ensuring that both integer operands are signed at the outset, though, produces a more formally correct result.
2023-01-03DRTVWR-575: Replace some LLSDArray() usage with llsd::array().Nat Goodspeed
It seems newer compilers have a different interpretation of exactly when to engage LLSDArray's copy constructor. In particular, this assignment: some_LLSD_map[key] = LLSDArray(...)(...)...; used to convert the LLSDArray object directly to LLSD; now it first calls the custom copy constructor, which embeds the intended array within an outer array before assigning it into the containing map. The newer llsd::array() function avoids that problem because what it returns is already an LLSD object. Taking inventory of LLSDArray assignments of that form turned up a number of workarounds like LLSD(LLSDArray(...)). Replacing those with llsd::array() is both simpler and more readable. Tip of the hat to Chorazinallen for surfacing this issue!
2023-01-03Polish translation: Leftovers cleanup (files not present in /en/)PanteraPolnocy
2023-01-03Widgets cleanup in Polish translation (up to 6.6.9), fix translatability for ↵PanteraPolnocy
density_ctrl.xml file
2023-01-03SL-18893 Clean up for loops in llappearance to use C++11 range based for ↵Fawrsk
loops (#38)
2023-01-03SL-18891 Remove duplicate entry in settings filePantera Północy
2023-01-03SL-18874 Rigged mesh upload crash when using Bounding Box physicsAndrey Kleshchev
2022-12-20SL-18426 At log in only a part friends reported to chat as onlineAndrey Kleshchev
Server sends updates in bulk now, so notify per agent instead of per update
2022-12-16SL-18384 Fix NSException for keyboard handlingAndrey Kleshchev
Affects accent keys for diacritical marks
2022-12-14SL-18384 Fix NSException for keyboard handlingAndrey Kleshchev
Affects accent keys for diacritical marks
2022-12-13SL-15175 Merge pull request #26 from sldevel/contributeakleshchev
Fix failures to update the TP states while the viewer is minimized.
2022-12-12DRTVWR-565: Merge branch 'main' into contributeNat Goodspeed
2022-12-12Merge branch 'main' into DRTVWR-570-maint-QAndrey Lihatskiy
# Conflicts: # doc/contributions.txt # indra/newview/app_settings/shaders/class1/deferred/materialF.glsl # indra/newview/llfloater360capture.cpp
2022-12-12Increment viewer version to 6.6.9Nat Goodspeed
following promotion of DRTVWR-565
2022-12-12DRTVWR-565: Merge branch 'origin/contribute' into DRTVWR-565Nat Goodspeed
2022-12-12SL-16874 Added tool tips to buttons displayed by llDialog()Andrey Lihatskiy
2022-12-12Merge branch 'xcode-14.1' into contributeAndrey Kleshchev
2022-12-12SL-8839 Make About Land resizableAndrey Kleshchev
2022-12-12SL-18826 limit teleport command usageMaxim Nikolenko
2022-12-08Merge pull request #28 from secondlife/sl-14399nat-goodspeed
SL-14399: Ditch overflow queue LLViewerAssetStorage::mCoroWaitList.
2022-12-07SL-14399 Remove obsolete codeAndrey Kleshchev
mCoroWaitList covers all assets not just landmarks
2022-12-07SL-14399: Ditch overflow queue LLViewerAssetStorage::mCoroWaitList.Nat Goodspeed
mCoroWaitList was introduced to prevent an assertion failure crash: LLCoprocedureManager never expects to fill LLCoprocedurePool::mPendingCoprocs queue. The queue limit was arbitrarily set to 4096 some years ago, but in practice LLViewerAssetStorage can post way more requests than that. LLViewerAssetStorage checked whether the target LLCoprocedureManager pool's queue looked close to full, and if so posted the pending request to its mCoroWaitList instead. But then it had to override the base LLAssetStorage method checkForTimeouts() to continually check whether pending tasks could be moved from mCoroWaitList to LLCoprocedureManager. A simpler solution is to enlarge LLCorpocedureManager::DEFAULT_QUEUE_SIZE, the upper limit on mPendingCoprocs. Since mCoroWaitList was an unlimited queue, making DEFAULT_QUEUE_SIZE "very large" does not increase the risk of runaway memory consumption.
2022-12-07Fix failures to update the TP states while the viewer is minimized.Henri Beauchamp
This is a fix for: https://jira.secondlife.com/browse/BUG-230616
2022-12-06DRTVWR-575: Try to avoid comparison warnings in llclamp()Nat Goodspeed
2022-12-06DRTVWR-575: Defend unescape_string() against empty line.Nat Goodspeed
The unsigned index arithmetic was problematic in that case.
2022-12-06DRTVWR-575: Update a few more int lengths in llsdserialize.{h,cpp}.Nat Goodspeed
2022-12-06DRTVWR-575: Use llssize (signed size_t) for max_bytes parameters.Nat Goodspeed
Since LLSDSerialize::SIZE_UNLIMITED is negative, passing that through unsigned size_t parameters could result in peculiar behavior.
2022-12-06DRTVWR-575: Introduce LLKeyBind::endNonEmpty()Nat Goodspeed
and use it to replace dubious loops in asLLSD() and trimEmpty().
2022-12-06DRTVWR-575: Keep BufferArray::findBlock() in int domain.Nat Goodspeed
2022-12-06SL-18778 Crash at LLVoiceClient::removeObserver (#25)akleshchev
2022-12-03SL-18486 Complete Avatars floater is blank.Maxim Nikolenko
2022-12-01SL-18243 Add wear and unwear buttons on line items in Outfits floaterMaxim Nikolenko
2022-11-28SL-18718 Crash at LLEventPump::listen and connection issuesAndrey Kleshchev
Cleaner reinit and termination.
2022-11-22SL-18219 Crash getting and sending render info on exitAndrey Kleshchev
There might be other causes for sendRenderInfoToRegion and getRenderInfoFromRegion, crashing, but in some cases viewer was shutting down
2022-11-21Fix a thread safety issue in the GL image worker.Henri Beauchamp
LLViewerTexture::mNeedsCreateTexture needs to be an attomic bool since it is written both in the main thread and in the GL image worker thread. We can now enable threaded bump maps creation as a result of this fix. I have read the CLA Document and I hereby sign the CLA
2022-11-22SL-18689 Crash at LLTabContainer::selectNextTab()Andrey Kleshchev
FPE_NOOP at "idx = (idx + 1 ) % (S32)mTabList.size();"
2022-11-22SL-18565 Prevent texture fetch crash on second login attemptAndrey Kleshchev
2022-11-21Update message template URL after move to GitHubAnsariel
2022-11-21SL-18565 restoreGL should re-add bumpmapsAndrey Kleshchev
2022-11-17SL-15869 Do not account for login menu when checking if key combination is ↵Andrey Kleshchev
avaliable Ex: Allow mapping actions to Ctrl+Alt+D
2022-11-14SL-18637 Reverted material shader changesAndrey Lihatskiy
original fix by Beq Janus
2022-11-13DRTVWR-575: Explain that NSInteger is really int64_t.Nat Goodspeed
2022-11-13DRTVWR-575: Merge brad's xcode-14.1 fixes with nat'sNat Goodspeed
2022-11-12DRTVWR-575: Address review comments on Xcode 14.1 type tweaks.Nat Goodspeed
Introduce LLSD template constructors and assignment operators to disambiguate construction or assignment from any integer type to Integer, likewise any floating point type to Real. Use new narrow() function to validate conversions. For LLSD method parameters converted from LLSD::Integer to size_t, where the method previously checked for a negative argument, make it now check for size_t converted from negative: in other words, more than S32_MAX. The risk of having a parameter forced from negative to unsigned exceeds the risk of a valid length or index over that max. In lltracerecording.cpp's PeriodicRecording, now that mCurPeriod and mNumRecordedPeriods are size_t instead of S32, defend against subtracting 1 from 0. Use narrow() to validate newly-introduced narrowing conversions. Make llclamp() return the type of the raw input value, even if the types of the boundary values differ. std::ostream::tellp() no longer returns a value we can directly report as a number. Cast to U64.
2022-11-11DRTVWR-575 fix LLGetDarwinOSInfo for xcode-14.1. NSInteger is now 64 bitsBrad Kittenbrink
2022-11-11DRTVWR-575 fix LLWorkerThread subclasses to be compatiblie with recent ↵Brad Kittenbrink
size_t changes in base class