summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-04SL-18904 Merge pull request #40 from PanteraPolnocyakleshchev
A small batch of changes in Polish translation subdirectory
2023-01-04SL-18893 Update list of contributorsAndrey 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-04SL-18892 FIXED Mac build fails locallyMaxim Nikolenko
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-18857 FIXED Editing attachment before Shape can stop av turning for userMaxim Nikolenko
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-14SL-18786 Display updater on the top of other windowsMaxim Nikolenko
2022-12-13SL-15175 Updates for TP states while the viewer is minimizedAndrey Kleshchev
2022-12-13mac build fix - remove unused variablesMaxim Nikolenko
2022-12-13retrigger buildMaxim Nikolenko
2022-12-13Merge branch 'main' into DRTVWR-539Mnikolenko Productengine
# Conflicts: # doc/contributions.txt # indra/newview/llappviewer.cpp # indra/newview/skins/default/colors.xml
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-12DRTVWR-565: Merge branch 'master' into contributeNat Goodspeed
2022-12-12Merge branch 'main' into DRTVWR-568Callum Prentice
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-11SL-18159 Windows' mouse from keyboard emulation causes pointer to jump ↵akleshchev
around the screen. Emulated mouse was trigering "not a valid zoomable object" case and jumping to garbage mMouseDownX/Y due to 'up' event being too early.
2022-12-09SL-8294 Fixed Incorrect coordinates in address barAndrey Kleshchev
Example: Stepping over 183/255/22 will show position 183/1/22 of the same region
2022-12-09Merge branch 'SL-18824' into DRTVWR-573-maint-RAndrey Lihatskiy
2022-12-09SL-18824 - added hardare_concurrency to system statsBrad Payne (Vir Linden)
2022-12-09SL-18823 FIXED Crash when using 'Create folder from selected'Maxim Nikolenko
2022-12-09SL-18810 FIXED "Find Original" doesn't work if Item profile was previously ↵Mnikolenko Productengine
selected
2022-12-09SL-18776 Fix handling for an empty avatar listAndrey Kleshchev
2022-12-08Merge pull request #28 from secondlife/sl-14399nat-goodspeed
SL-14399: Ditch overflow queue LLViewerAssetStorage::mCoroWaitList.
2022-12-08SL-18807 FIXED Viewer crashes when trying to purge item using 'Pick: Select ↵Maxim Nikolenko
settings' floater
2022-12-07SL-14399 Remove obsolete codeAndrey Kleshchev
mCoroWaitList covers all assets not just landmarks
2022-12-07SL-18801 Crash at LLPluginProcessParent::pollTick()Andrey Kleshchev
Looks like pollTick tried to call an already dead process
2022-12-07SL-18330: Merge 'contribute' of secondlife/viewer into sl-18330Nat Goodspeed
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-07SL-18800 fix crash in removeMutedAVsLightsMnikolenko Productengine
2022-12-07SL-18799 Crash at requestPostCapabilityAndrey Kleshchev
2022-12-07SL-18776 Avatar picker search not updated on http errorAndrey Kleshchev
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