summaryrefslogtreecommitdiff
path: root/indra/llcommon
AgeCommit message (Collapse)Author
2021-01-11SL-2202 Add exception handling around boost::regex_match() calls in the viewerMnikolenko Productengine
2020-12-01SL-14347 Crash at ChoosePixelFormat SEHAndrey Kleshchev
2020-11-16SL-14340 Fix crash on llerror's recordersAndrey Kleshchev
2020-11-13Merge branch 'master' into DRTVWR-516-maintAndrey Lihatskiy
# Conflicts: # indra/llui/llfolderview.cpp # indra/llui/llfolderviewmodel.cpp # indra/newview/llenvironment.cpp
2020-11-11Merge branch 'master' 6.4.12 into DRTVWR-510Dave Houlton
2020-11-11Merge branch 'master' (DRTVWR-507-maint) into DRTVWR-521-maintAndrey Kleshchev
# Conflicts: # autobuild.xml # indra/llcommon/llerror.cpp
2020-11-11Merge branch 'master' into DRTVWR-519Callum Prentice
2020-11-11Merged master (DRTVWR-507) into DRTVWR-514-keymappingsAndrey Kleshchev
2020-10-26SL-14004 Coalesce viewer's LLError::Settings and GlobalsAndrey Kleshchev
2020-10-26SL-13979 Crash of logging system at LLError::Settings::getInstance()Andrey Kleshchev
LLSingleton depends onto logging system, having logging system be based on LLSingleton causes crashes and deadlocks
2020-10-19DRTVWR-510 clean up obsolete downstream-from-mDebugGPU codeDave Houlton
2020-10-08DRTVWR-510 remove all LL_SOLARIS conditionalsDave Houlton
2020-09-25SL-13034 Last string in logs should say 'Goodbye'Andrey Kleshchev
These logs were not logging for very long due to supressed logging system, no point showing them now
2020-09-25SL-13979 Crash of logging system at LLError::Settings::getInstance()Andrey Kleshchev
LLSingleton depends onto logging system, having logging system be based on LLSingleton causes crashes and deadlocks
2020-09-11Effective rename of DRTVWR-506-simple since there is no way to rename a ↵Callum Prentice
branch. Cloned canonical viewer into DRTVWR-519, copied over the files that changed from DRTVWR-506-simple and pushed back. Once I am satisfied everything is correct, DRTVWR-506-simple will be removed
2020-08-25SL-13843 FIXED URL gets changed when opened in the internal web browseMnikolenko Productengine
2020-08-24SL-10297 merged 6.4.7Oz Linden
2020-08-18Merge branch 'master' into DRTVWR-514-keymappingsAndrey Lihatskiy
2020-08-11Merged master into DRTVWR-514-keymappingsAndrey Kleshchev
2020-07-28Nat's suggested improvement to LLThreadSafeQueue that takes account of queue ↵Callum Prentice
being empty as well as the status flag condition
2020-07-22Put hash for boost namespace properly into that by using namespace boostNicky Dasmijn
2020-07-22Linux needs strcmp , include <string.h> so we get access to that function.Nicky Dasmijn
2020-07-20Merge branch 'master' into DRTVWR-501-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/newview/llimprocessing.cpp
2020-07-14Fixed -Wstring-plus-int related errors for compatibility with Xcode-11.4Brad Kittenbrink
2020-07-07DRTVWR-476, SL-13555: Don't crash if user closes viewer during login.Nat Goodspeed
Ever since February 2010, the body of the login coroutine function has been enclosed in try/catch (...), with an llerrs message to try to crash more informatively than the runtime's unhandled-exception termination. Over the years this evolved to LL_ERRS and then to CRASH_ON_UNHANDLED_EXCEPTION. This persisted despite the August 2016 addition of generic catch clauses in the LLCoros::toplevel() function to serve the same purpose, and despite the subsequent introduction of the LLCoros::Stop family of exceptions to deliberately throw into waiting coroutines on viewer shutdown. That's exactly what was happening. When the user closed the viewer while waiting for the response from login.cgi, the waiting operation threw LLCoros::Stopping, which was caught by that CRASH_ON_UNHANDLED_EXCEPTION, which crashed the viewer with LL_ERRS rather than propagating up to the toplevel() and cleanly terminating the coroutine. Change CRASH_ON_UNHANDLED_EXCEPTION() to LOG_UNHANDLED_EXCEPTION() and re-throw so toplevel() can handle.
2020-07-01SL-13361: Enable color processing on Windows 10 debug console.Nat Goodspeed
(cherry picked from commit 0b61150e698537a7e42a4cdae02496da500399d9)
2020-06-26DRTVWR-476, SL-13512: Fix flawed fix for former failure.Nat Goodspeed
Specifically, llcoro::suspendUntilTimeout() is definitely called concurrently by multiple coroutines. New code that instantiates a local LLEventStream must allow the name to be tweaked for uniqueness.
2020-06-25DRTVWR-476, SL-13512: Make suspendUntilTimeout() notice shutdown.Nat Goodspeed
Specifically, the shutdown crash reported in SL-13512 was due to LLExperienceCache::idleCoro() looping on suspendUntilTimeout(), failing to notice in its slumbers that the viewer was shutting down around it. Make suspendUntilTimeout() internally call suspendUntilEventOnWithTimeout(), which already listens for "LLApp" state-change events and throws Stopping when LLApp enters its shutdown sequence.
2020-06-24SL-6109 Fixed issue with llcontrols ignoring left mouse button with masksandreykproductengine
2020-06-23Reverted SL-6109 keybinding changesAndrey Kleshchev
Changes were moved to DRTVWR-514
2020-06-23SL-13418 Added converter from old mouse binding settings to new onesAndrey Kleshchev
2020-06-23SL-6109 Better key and table localization support and fix for key-replacingandreykproductengine
2020-06-23SL-6109 Remade 'ignore' list processing, renamed and reformed keybindingsandreykproductengine
2020-06-23SL-6109 Conflict resolutionandreykproductengine
2020-06-23SL-6109 Mouse support readyandreykproductengine
2020-06-23SL-6109 Keyaboard support readyandreykproductengine
2020-06-23SL-6109 Implement keybindingsandreykproductengine
2020-06-15SL-10297: xcode compatibility fixOz Linden
2020-06-15SL-10297: merge up to master at 6.4.3Oz Linden
2020-06-15SL-13418 Added converter from old mouse binding settings to new onesAndrey Kleshchev
2020-05-27DRTVWR-476: LLMainThreadTask cross-thread test hangs. Skip.Nat Goodspeed
2020-05-20DRTVWR-476: Add LLThreadSafeQueue::tryPushFrontFor().Nat Goodspeed
tryPushFrontFor() is pushFront() with a std::chrono::duration timeout.
2020-05-14DRTVWR-476: Wrap boost::fibers::mutex et al. with LLCoros aliases.Nat Goodspeed
Specifically: LLCoros::Mutex means boost::fibers::mutex LLCoros::LockType means std::unique_lock<boost::fibers::mutex> LLCoros::ConditionVariable means boost::fibers::condition_variable LLCoros::cv_status means boost::fibers::cv_status So as not to drag in all of boost::fibers::mutex.hpp or condition_variable.hpp for each consumer of llcoros.h, instead #define LLCOROS_MUTEX_HEADER and LLCOROS_CONDVAR_HEADER. Those who need them can #include the relevant macro. Update llcond.h and llthreadsafequeue.h accordingly.
2020-05-14DRTVWR-476: Make LLSDFormatter::OPTIONS_PRETTY_BINARY uppercaseNat Goodspeed
for compatibility with Python llbase.llsd.parse(). The Python parse() currently requires uppercase hex digits for b16"hex" coding; lowercase hex digits cause it to raise LLSDParseError.
2020-05-14DRTVWR-476: Fix LLError::Log::classname(T*) template function.Nat Goodspeed
First, the signature classname(const T*) was wrong: that function could only accept a pointer to const T. The expression classname(someptr) where someptr was a pointer to non-const SomeType displayed "SomeType*" because it could only match classname(const T&), where T was SomeType*. classname(T* const) is what we should have written, meaning "const pointer to T" rather than "pointer to const T." Second, the previous implementation failed to handle the case in which the pointer was nullptr.
2020-05-13DRTVWR-476: Default LLSDNotationFormatter now OPTIONS_PRETTY_BINARY.Nat Goodspeed
LLSDNotationFormatter (also LLSDNotationStreamer that uses it, plus operator<<(std::ostream&, const LLSD&) that uses LLSDNotationStreamer) is most useful for displaying LLSD to a human, e.g. for logging. Having the default dump raw binary bytes into the log file is not only suboptimal, it can truncate the output if one of those bytes is '\0'. (This is a problem with the logging subsystem, but that's a story for another day.) Use OPTIONS_PRETTY_BINARY wherever there is a default LLSDFormatter ::EFormatterOptions argument. Also, allow setting LLSDFormatter subclass boolalpha(), realFormat() and format(options) using optional constructor arguments. Naturally, each subclass that supports this must accept and forward these constructor arguments to its LLSDFormatter base class constructor. Fix a couple bugs in LLSDNotationFormatter::format_impl() for an LLSD::Binary value with OPTIONS_PRETTY_BINARY: - The code unconditionally emitted a b(len) type prefix followed by either raw binary or hex, depending on the option flag. OPTIONS_PRETTY_BINARY caused it to emit "0x" before the hex representation of the data. This is wrong in that it can't be read back by either the C++ or the Python LLSD parser. Correct OPTIONS_PRETTY_BINARY formatting consists of b16"hex digits" rather than b(len)"raw bytes". - Although the code did set hex mode, it didn't set either the field width or the fill character, so that a byte value less than 16 would emit a single digit rather than two. Instead of having one LLSDFormatter::format() method with an optional options argument, declare two overloads. The format() overload without options passes the mOptions data member to the overload accepting options. Refactor the LLSDFormatter family, hoisting the recursive format_impl() method (accepting level) to a pure virtual method at LLSDFormatter base-class level. Most subclasses therefore need not override either base-class format() method, only format_impl(). In fact the short format() overload isn't even virtual. Consistently use LLSDFormatter::EFormatterOptions enum as the options parameter wherever such options are accepted.
2020-05-06DRTVWR-476: Add llsd::clone(), llsd::shallow() aliasesNat Goodspeed
for new llsd_clone(), llsd_shallow() functions.
2020-05-06DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72Nat Goodspeed
2020-04-29Merge branch 'DRTVWR-500' into DRTVWR-501-maintAndrey Lihatskiy
2020-04-21AMD CPUs list updateAndrey Lihatskiy