summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2023-01-26Merge branch 'xcode-14.1' into DRTVWR-489-emojiCallum Prentice
2023-01-25DRTVWR-489-emoji: declaring this variable as a U16 leads to a warning (and ↵Callum Linden
therefore an error) but only on 32bit Windows builds - 64bit is fine. I don't know why that's the case (should be both surely) but in any case, I think the variable should be declared as a size_t
2023-01-24DRTVWR-489-emoji: Trying to get to the bottom of a TeamCity build failure ↵Callum Linden
with access to TeramCity - with all the ICU4C DLLs removed, the viewer builds fine which does suggest a size/disk space issue. Trying with the (porposed) minimum set to see if this helps. Likely it won't because the main one (icudt48.dll) is much, much bigger than the others combined - but we shall see
2023-01-24DRTVWR-489-emoji: Trying to get to the bottom of a TeamCity build failure ↵Callum Linden
with access to TeramCity - one theory is that the extra size of these DLLs consumes too much disk space and results in the NSIS internal compiler error we observe - removing these tempoorarily to see what difference that makes
2023-01-24DRTVWR-489-emoji: Fix a warning when packaging Viewer installer. TeamCity ↵Callum Linden
builds fail because of 'compiler error' in NSIS - wondering if this warning triggers the error (it doesn't locally) - yes, grasphing at straws
2023-01-23DRTVWR-489-emoji: Update the machinery that copies over the ICU4C DLLs into ↵Callum Linden
the right place in Windows builds
2023-01-20Fix merge conflicts after auto mergeCallum Linden
2023-01-10SL-18911 My Land Holdings floater crashes viewer on the Xcode/+Monterey ↵akleshchev
branches (#47) Revert part of "DRTVWR-575: Address review comments on Xcode 14.1 type tweaks." Crash was reproduced when assigning areastr to llsd, but likely present in other cases of assigning ui strings to llsd (instead of going for lluistring's result directly copy constructor was engaged and either copy or original crashed due to invalid pointers, copy shouldn't have been created).
2023-01-06Merge remote-tracking branch 'origin/master' into DRTVWR-489-emojiKitty Barnett
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-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!
2022-12-12Increment viewer version to 6.6.9Nat Goodspeed
following promotion of DRTVWR-565
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-11-28SL-18718 Crash at LLEventPump::listen and connection issuesAndrey Kleshchev
Cleaner reinit and termination.
2022-11-22SL-18565 Prevent texture fetch crash on second login attemptAndrey Kleshchev
2022-11-21SL-18565 restoreGL should re-add bumpmapsAndrey Kleshchev
2022-11-19Fix 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-16Merge branch 'DRTVWR-489-emoji' into DRTVWR-489-emojiKitty Barnett
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
2022-11-11DRTVWR-575 xcode-14.1 compatibility fix. add more overloads for stricter ↵Brad Kittenbrink
size_t conversions
2022-11-11DRTVWR-575 xcode-14.1 compatibility fix. add overloads for stricter integer ↵Brad Kittenbrink
conversions
2022-11-09Merge branch contribution/emoji into DRTVWR-489-emojiKitty Barnett
2022-11-09Enable color on HUD textKitty Barnett
2022-11-09Show color emojis and emoji helper in notecardsKitty Barnett
2022-11-09[FIXED] Using the Windows emoji picker or pasting text containing emojis ↵Kitty Barnett
doesn't create emoji segments (=emoji size is same size as the text size) -> Partial revert of 063fe59
2022-11-08Enable color emojis (and the emoji helper) on the chat history and editorKitty Barnett
2022-11-08Add proper mouse down handler to the emoji complete panelKitty Barnett
-> the previous commit didn't properly set mFrontChild after restoring the topmost floaters -> additionally we don't want mouse clicks in "can't steal focus from frontmost" floaters to set focus to them
2022-11-08[FIXED] Various minor issuesKitty Barnett
- Typing :+1: doesn't replace the short code with the thumbs-up emoji - Moving the mouse over the emoji complete panel highlights the wrong emoji when mScrollPos > 0 - Emoji complete panel is missing attributes - Crash when attempting to show the tooltip for an emoji text segment - Emoji autocomplete panel can sometimes show empty (type ':cat', select the heart eyed one, Ctrl-Z and then type 2 which should show the emoji for :cat2 but shows an empty square instead)
2022-11-06Switch to using the Twemoji OT-SVG fontKitty Barnett
2022-11-06Merge branch contribution/emoji into contribution/emoji-uiKitty Barnett
2022-11-06Add support for OT-SVG fontsKitty Barnett
2022-11-05SL-18581 Don't show the starter avatar toolbar button for NUXAndrey Lihatskiy
2022-11-04DRTVWR-575: Introduce llssize (signed size_t) and narrow() function.Nat Goodspeed
llssize is for a function parameter that should accept a size or index (derived from size_t, which is 64 bits in a 64-bit viewer) but might need to go negative for flag values. We've historically used S32 for that purpose, but Xcode 14.1 complains about trying to pass size_t to S32. narrow() is a template function that casts a wider type (e.g. size_t or llssize) to a narrower type (e.g. S32 or U32), with validation in RelWithDebInfo builds. It verifies (using assert()) that the value being truncated can in fact fit into the target type.
2022-11-03SL-18565 Built-in bump maps and some environment textures fail to loadAndrey Kleshchev
Due to udp texture fetching no longer being present
2022-11-03DRTVWR-575: Suppress remaining size_t truncation warnings for now.Nat Goodspeed
2022-11-03DRTVWR-575: A few more tweaks addressing size_t wider than 32 bits.Nat Goodspeed
2022-11-03DRTVWR-575: Fix llcommon assumptions that size_t fits in 4 bytes.Nat Goodspeed
It's a little distressing how often we have historically coded S32 or U32 to pass a length or index. There are more such assumptions in other viewer subdirectories, but this is a start.
2022-11-03DRTVWR-575: Forbid Xcode 14.1 from implicitly signing every target.Nat Goodspeed
Or rather, attempting to implicitly sign. On TeamCity we must explicitly sign using viewer_manifest.py. On a developer system, without these changes, Xcode produces many errors of the form: error: An empty identity is not valid when signing a binary for the product type 'Command-line Tool'. (in target 'INTEGRATION_TEST_lldir' from project 'SecondLife') and refuses to compile anything at all. Thanks to Rye Mutt and NickyD. Also thanks Geir Nøklebye for additional settings to help tame Xcode 14.1 warnings.