summaryrefslogtreecommitdiff
path: root/indra/newview
AgeCommit message (Collapse)Author
2016-09-16MAINT-6694 Console overflow crash in gestures.andreykproductengine
2016-09-15MAINT-5232: Normalize LLSingleton subclasses.Nat Goodspeed
A shocking number of LLSingleton subclasses had public constructors -- and in several instances, were being explicitly instantiated independently of the LLSingleton machinery. This breaks the new LLSingleton dependency-tracking machinery. It seems only fair that if you say you want an LLSingleton, there should only be ONE INSTANCE! Introduce LLSINGLETON() and LLSINGLETON_EMPTY_CTOR() macros. These handle the friend class LLSingleton<whatevah>; and explicitly declare a private nullary constructor. To try to enforce the LLSINGLETON() convention, introduce a new pure virtual LLSingleton method you_must_use_LLSINGLETON_macro() which is, as you might suspect, defined by the macro. If you declare an LLSingleton subclass without using LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() in the class body, you can't instantiate the subclass for lack of a you_must_use_LLSINGLETON_macro() implementation -- which will hopefully remind the coder. Trawl through ALL LLSingleton subclass definitions, sprinkling in LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() as appropriate. Remove all explicit constructor declarations, public or private, along with relevant 'friend class LLSingleton<myself>' declarations. Where destructors are declared, move them into private section as well. Where the constructor was inline but nontrivial, move out of class body. Fix several LLSingleton abuses revealed by making ctors/dtors private: LLGlobalEconomy was both an LLSingleton and the base class for LLRegionEconomy, a non-LLSingleton. (Therefore every LLRegionEconomy instance contained another instance of the LLGlobalEconomy "singleton.") Extract LLBaseEconomy; LLGlobalEconomy is now a trivial subclass of that. LLRegionEconomy, as you might suspect, now derives from LLBaseEconomy. LLToolGrab, an LLSingleton, was also explicitly instantiated by LLToolCompGun's constructor. Extract LLToolGrabBase, explicitly instantiated, with trivial subclass LLToolGrab, the LLSingleton instance. (WARNING: LLToolGrabBase methods have an unnerving tendency to go after LLToolGrab::getInstance(). I DO NOT KNOW what should be the relationship between the instance in LLToolCompGun and the LLToolGrab singleton instance.) LLGridManager declared a variant constructor accepting (const std::string&), with the comment: // initialize with an explicity grid file for testing. As there is no evidence of this being called from anywhere, delete it. LLChicletBar's constructor accepted an optional (const LLSD&). As the LLSD parameter wasn't used, and as there is no evidence of it being passed from anywhere, delete the parameter. LLViewerWindow::shutdownViews() was checking LLNavigationBar:: instanceExists(), then deleting its getInstance() pointer -- leaving a dangling LLSingleton instance pointer, a land mine if any subsequent code should attempt to reference it. Use deleteSingleton() instead. ~LLAppViewer() was calling LLViewerEventRecorder::instance() and then explicitly calling ~LLViewerEventRecorder() on that instance -- leaving the LLSingleton instance pointer pointing to an allocated-but-destroyed instance. Use deleteSingleton() instead.
2016-09-15increment viewer version to 4.0.9Oz Linden
2016-09-14MAINT-6731 Use web profile URLs from the grid configurationNatty Linden
2016-09-15MAINT-6734 Fixed processData() crash in LLMeshHeaderHandlerandreykproductengine
2016-09-15Merged in pavelkproductengine/visual-outfit-browserAndreyL ProductEngine
2016-09-15Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2016-09-14MergeRider Linden
2016-09-14MAINT-6723 FIXED [VOB] Crash in LLOutfitGallery::buildItemPanel(int)Mnikolenko Productengine
2016-09-13MAINT-6726 Fixed LLLineEditor menus staying in memory foreverandreykproductengine
2016-09-13MAINT-6726 Fixed LLLineEditor menus staying in memory foreverandreykproductengine
2016-09-13MAINT-6718 Can't Wear - Replace current outfits.Mnikolenko Productengine
2016-09-12SL-444 Add Abuse Report Submision Confirmation Pop upMnikolenko Productengine
2016-09-09MAINT-6711 "Object view" rotates around the avatarandreykproductengine
2016-09-07MAINT-6699 FIXED [VOB] Crash in LLSnapshotLivePreview::getBigThumbnailImage()Mnikolenko Productengine
2016-09-06MAINT-6698 [VOB] "Save" button is always enabled for outfit with non-default ↵Mnikolenko Productengine
image even if there were no changes
2016-09-05MAINT-6697 make sure we have data to processandreykproductengine
2016-09-05MAINT-6685 [VOB] Outfit Image from an Outfit Gallery disappears after ↵Mnikolenko Productengine
editing outfit
2016-09-02MAINT-6461 crash due to invalid menu pointer during visibility changeandreykproductengine
2016-09-02MAINT-6461 crash due to invalid menu pointer during visibility changeandreykproductengine
2016-09-01MAINT-6686 FIXED [VOB] Outfit Snapshot floater should be resized ↵Mnikolenko Productengine
independently of general Snapshot floater
2016-08-31MAINT-6386 Update first-time Viewer Login screen with new LISI screenshotsAndreyL ProductEngine
2016-08-31MAINT-5232: Add LLSingletonBase::cleanupAll() and deleteAll() callsNat Goodspeed
near the end of LLAppViewer::cleanup() so every LLSingleton class that hasn't already been explicitly cleaned up gets a chance to perform its own cleanup.
2016-08-31MAINT-5232: LLMetricPerformanceTesterBasic::cleanClass->cleanupClassNat Goodspeed
for consistency with everything else, so we can use SUBSYSTEM_CLEANUP() macro to call it.
2016-08-30MAINT-5232: LLGlobalEconomy is now an LLSingleton.Nat Goodspeed
It used to contain an LLSingleton called Singleton, requiring LLGlobalEconomy::Singleton::instance() to access it rather than the conventional LLGlobalEconomy::instance(). This has been fixed, so normalize references accordingly.
2016-08-30MAINT-5232: Change getIfExists() call to instanceExists().Nat Goodspeed
LLSingleton::getIfExists() has been eliminated. The only remaining way to detect whether a given LLSingleton has been instantiated is to call instanceExists(). But the relevant cleanup code should be refactored to cleanupSingleton() anyway, which would make this specific call moot.
2016-08-30MAINT-5232: Remove unreferenced mInFlightCounter.Nat Goodspeed
This fixes fatal warnings.
2016-08-30Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-08-30MAINT-6682 Viewer crashes when deleting notecards one by oneMnikolenko Productengine
2016-08-29Automated merge with ssh://bitbucket.org/lindenlab/viewer-vlcNat Goodspeed
2016-08-26MAINT-5011: Add top-level exception handlers in LLAppViewer::frame().Nat Goodspeed
2016-08-26MAINT-5011: Fix misleading indentation in WINMAIN().Nat Goodspeed
2016-08-26MAINT-6658 Profile was opening app url in browser.andreykproductengine
2016-08-29MAINT-1768 Previous changes are reverted. Sharing items from trash is ↵Mnikolenko Productengine
disabled now.
2016-08-26MAINT-6665 [Contribution] Viewer crashes when setting a local texture from a ↵Mnikolenko Productengine
path containing non-standard characters
2016-08-26MAINT-6676 FIXED Viewer crashes when clicking "Default creation permissions" ↵Mnikolenko Productengine
before logging in.
2016-08-25MAINT-6657 Media navigation bar beyond the window borderMnikolenko Productengine
2016-08-23MAINT-6671 Fixed crash in LLFloaterPay::give()andreykproductengine
2016-08-23MAINT-6616 new crash in VOB viewer in snapshot previewMnikolenko Productengine
2016-08-22Backed out changeset: 6d631b9d02a0 for maint-6242andreykproductengine
2016-08-20MAINT-6662 Don't show release notes on first loginAndreyL ProductEngine
2016-08-20MAINT-6663 [Win LibVLC] test video buttons still appearing in searchAndreyL ProductEngine
2016-08-18MAINT-5011: Catch unhandled exceptions in LLCoros coroutines.Nat Goodspeed
Wrap coroutine call in try/catch in top-level coroutine wrapper function LLCoros::toplevel(). Distinguish exception classes derived from LLContinueError (log and continue) from all others (crash with LL_ERRS). Enhance CRASH_ON_UNHANDLED_EXCEPTIONS() and LOG_UNHANDLED_EXCEPTIONS() macros to accept a context string to supplement the log message. This lets us replace many places that called boost::current_exception_diagnostic_information() with LOG_UNHANDLED_EXCEPTIONS() instead, since the explicit calls were mostly to log supplemental information. Provide supplemental information (coroutine name, function parameters) for some of the previous LOG_UNHANDLED_EXCEPTIONS() calls. This information duplicates LL_DEBUGS() information at the top of these functions, but in a typical log file we wouldn't see the LL_DEBUGS() message. Eliminate a few catch (std::exception e) clauses: the information we get from boost::current_exception_diagnostic_information() in a catch (...) clause makes it unnecessary to distinguish. In a few cases, add a final 'throw;' to a catch (...) clause: having logged the local context info, propagate the exception to be caught by higher-level try/catch. In a couple places, couldn't resist reconciling indentation within a particular function: tabs where the rest of the function uses tabs, spaces where the rest of the function uses spaces. In LLLogin::Impl::loginCoro(), eliminate some confusing comments about an array of rewritten URIs that date back to a long-deleted implementation.
2016-08-18MAINT-5992 Second Life unusable on Windows 10 with 4k monitor SL forcibly ↵pavelkproductengine
overrides DPI compatibility option
2016-08-19MAINT-6649 PRIM_TEXT/llSetText upper draw distance limitMnikolenko Productengine
2016-08-18MAINT-6644 Way for users to disable avatar complexity notifications.andreykproductengine
2016-08-17MergeRider Linden
2016-08-17MAINT-5011: Try to enrich catch (...) logging throughout viewer.Nat Goodspeed
Turns out we have a surprising number of catch (...) clauses in the viewer code base. If all we currently do is LL_ERRS() << "unknown exception" << LL_ENDL; then call CRASH_ON_UNHANDLED_EXCEPTION() instead. If what we do is LL_WARNS() << "unknown exception" << LL_ENDL; then call LOG_UNHANDLED_EXCEPTION() instead. Since many places need LOG_UNHANDLED_EXCEPTION() and nobody catches LLContinueError yet, eliminate LLContinueError& parameter from LOG_UNHANDLED_EXCEPTION(). This permits us to use the same log message as CRASH_ON_UNHANDLED_EXCEPTION(), just with a different severity level. Where a catch (...) clause actually provides contextual information, or makes an error string, add boost::current_exception_diagnostic_information() to try to figure out actual exception class and message.
2016-08-17Put bake request back in AIS queue. Don't rerequest bake.Rider Linden
2016-08-17Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed