summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2016-08-17MAINT-5011: Derive image-load exceptions from LLContinueError.Nat Goodspeed
Failure to load an image shouldn't crash the whole viewer.
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-17MAINT-5011: Clean up indentation from merge of viewer-release.Nat Goodspeed
2016-08-17Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-08-17MAINT-5011: Use LLTHROW() instead of plain BOOST_THROW_EXCEPTION().Nat Goodspeed
A level of preprocessor indirection lets us later change the implementation if desired.
2016-08-17MAINT-5011: Add llexception_test.cpp with tests (and conclusions).Nat Goodspeed
llexception_test.cpp is an unusual test source in that it need not be verified on every build, so its invocation in indra/llcommon/CMakeLists.txt is commented out with that remark. Its purpose is to help a developer decide what base class(es) to use for LLException, how to throw and how to catch. Our current conclusions are written up as comments in llexception_test.cpp. Added CRASH_ON_UNHANDLED_EXCEPTION() and LOG_UNHANDLED_EXCEPTION() macros to llexception.h -- macros to log __FILE__, __LINE__ and __PRETTY_FUNCTION__ of the catch site. These invoke functions in llexception.cpp so we don't need to #include llerror.h for every possible catch site.
2016-08-16Merge VOB with 4.0.8-releasepavelkproductengine
2016-08-11merge changes for 4.0.7-releaseOz Linden
2016-08-11increment viewer version to 4.0.8Oz Linden
2016-08-10MAINT-6616 new crash in VOB viewer in snapshot previewMnikolenko Productengine
2016-08-09MAINT-6618 More checksAndreyL ProductEngine
2016-08-09Reverted change to lllayoutstack.cpp which could possibly cause memory leakpavelkproductengine
2016-08-09MAINT-6618 Fixed the crash in LLImageRaw::scale() + some additional checksAndreyL ProductEngine
2016-08-06MAINT-6584: Don't crash on inconsistent dims in a JPEG-2000 image.Nat Goodspeed
Previous code would crump with LL_ERRS. But a bad image file should fail only the image load -- not crash the viewer. While at it, validate all components present, not just 0, 1, 2. While at it, make the failure message report which component and what the mismatched dimensions are, not just "Components don't have matching dimensions!"
2016-08-05MAINT-6584: Introduce KDUError exception from other viewer project.Nat Goodspeed
Specifically, manually apply changesets b4db8a8 and b98371d from nat_linden/viewer-mac-mainloop. We need to throw from a new place, but if we threw const char* (current convention), the new throw wouldn't be patched when we merge to new exception convention.
2016-08-05MAINT-6584: Add explanatory comments to LLImageJ2CKDU implementation.Nat Goodspeed
These comments are inherently fragile, in that they enumerate all present callers of certain methods. Adding, removing or relocating calls would invalidate these comments. However, the LLImageJ2CKDU implementation is probably pretty stable by now.
2016-08-05MAINT-6584: Clarify LLKDUMessageError::flush() throwing exception.Nat Goodspeed
2016-08-05Merged in oz_linden/viewer-buildAndreyL ProductEngine
2016-08-05Buildfix: brought back LINDEN_J2C_COMMENT_PREFIXAndreyL ProductEngine
2016-08-05Merged andreyl_productengine/viewer-427 into defaultAndrey Lihatskiy
2016-08-04MAINT-6584: Comment out completely unused LLImageJ2CKDU code.Nat Goodspeed
The only call to the findDiscardLevelsBoundaries() method was commented out inside initDecode(), with a comment: // Merov : Test!! DO NOT COMMIT!! This was the only caller of copy_tile(), which was the only caller of copy_block(). Commented out all three of these (biggish!) functions, since I have no idea what any of them were supposed to do or when it might be useful to call them. In other words, I can't yet rule out the possibility that I might have to uncomment them.
2016-08-04Merged in lindenlab/viewer-lynxAndreyL ProductEngine
2016-08-04MAINT-6604 FIXED [VOB] Snapshot preview is corruptedMnikolenko Productengine
2016-08-01MAINT-6460 getMeshSize crashandreykproductengine
2016-08-01MAINT-6460 Crash calculating mesh complexityandreykproductengine
2016-08-01Backed out changeset: c21a7e6d9796andreykproductengine
2016-08-01MAINT-6602 disable ability to select local texturesMnikolenko Productengine
2016-07-29MAINT-6601 FIXED [VOB] Texture picker generates WARNING spam in SecondLife.logMnikolenko Productengine
2016-07-28MAINT-6511 Replaced c-style casts with dynamic_cast in llfloater.cppAndreyL ProductEngine
2016-07-27increment version number to 4.1.1Oz Linden
2016-07-27remove use of "override" C++11 feature not supported on gcc 4.6Oz Linden
2016-07-27MAINT-4327/MAINT-6584 Supress the crash on memory allocation error when ↵AndreyL ProductEngine
decoding J2C images
2016-08-03MAINT-6584: Use RAII classes to manage helper object lifespans.Nat Goodspeed
Use boost::scoped_ptr instead of raw pointers to LLKDUMemSource, LLKDUDecodeState, kdu_coords and kdu_dims so cleanup is simpler, and automated on destruction of LLImageJ2CKDU. Replace pointer to kdu_codestream with a custom RAII class. kdu_codestream is itself an opaque handle, so we don't need to add another layer of indirection. Just wrap it to ensure its destroy() method is reliably called when needed. Make static instances of LLKDUMessageWarning and LLKDUMessageError self-register, eliminating the companion static bool and explicit checks in code.
2016-07-26merge callums latest changesOz Linden
2016-07-26MAINT-6476 VOB - User can add any size image to an Outfit Gallery outfit folderspavelkproductengine
Added restriction of image size that can be added to outfit via "Select Photo"
2016-07-25MAINT-6460 Crash calculating mesh complexityandreykproductengine
2016-07-25Remove unncessary Y flipCallum Prentice
2016-07-22Polish web content floater - rename to reflect it now does all media. remove ↵Callum Linden
developer options when Develop menu closed. start at google home page by default.
2016-07-22More Y flip madness - 2D media on OS X is has flipped Y mouse coords but ↵Callum Linden
correct on 3D/MOAP - reluctantly adding per platform switch
2016-07-22MAINT-6584: Convert LLImage class hierarchy to standard 'bool'Nat Goodspeed
instead of legacy BOOL.
2016-07-22MAINT-6584: Rationalize custom KDU error/warning message classes.Nat Goodspeed
Derive them both from a common base class that does the message logging, instead of having each handler class log redundantly -- especially since the put_text() override accepting const kdu_uint16* was simply streaming the kdu_uint16 pointer to the log file, which would log the hex value of the pointer. Although we want a static instance of each of these handler classes, pull it out rather than nesting the instance within the class itself.
2016-07-21First pass at enabling time based media (videos) scrubbing controlsCallum Linden
2016-07-21Remove new 'buffering' state for video media - seemed like it'd be useful ↵Callum Linden
but it broke things
2016-07-21MAINT-6584: Streamline static LLImageJ2C implementation API.Nat Goodspeed
Specifically, remove unused function pointer types CreateLLImageJ2CFunction, DestroyLLImageJ2CFunction and EngineInfoLLImageJ2CFunction. Also eliminate static fallbackDestroyLLImageJ2CImpl() and fallbackEngineInfoLLImageJ2CImpl(), leaving only static fallbackCreateLLImageJ2CImpl(). We do need a factory function to instantiate the appropriate LLImageJ2CImpl subclass, so leave the fallbackCreateLLImageJ2CImpl() link seam in place. However, given that every known LLImageJ2CImpl subclass is cheap to instantiate, make getEngineInfo() a pure virtual method on that subclass: the static LLImageJ2C::getEngineInfo() method can temporarily construct an instance to query. While we're at it, make getEngineInfo() return std::string like LLImageJ2C::getEngineInfo(). It's ridiculous that fallbackEngineInfoLLImageJ2CImpl() implementations constructed a static std::string and returned its c_str(), only to have LLImageJ2C::getEngineInfo() construct ANOTHER std::string from the returned const char*. fallbackDestroyLLImageJ2CImpl() never did anything useful: it merely deleted the passed LLImageJ2CImpl subclass pointer as the specific subclass type. But since LLImageJ2CImpl's destructor is virtual, LLImageJ2C's destructor could simply delete the stored LLImageJ2CImpl*. In fact, make mImpl a boost::scoped_ptr<LLImageJ2CImpl> so we don't even have to delete it manually.
2016-07-21explicit not available for conversion operators in Linux yetRider Linden
2016-07-21MAINT-6570: Feedback from code review.Rider Linden
2016-07-21DRTVWR-427: Remove engineInfoLLImageJ2CKDU(), createLLImageJ2CKDU(),Nat Goodspeed
destroyLLImageJ2CKDU(). These were apparently intended as simple C-style DLL entry points. But as nobody calls them, and as we decided against building the viewer from DLLs, they only clutter the code.
2016-07-21Add a comment about order of operation that might be important for those ↵Callum Linden
that follow
2016-07-21MergeRider Linden
2016-07-20MAINT-6578 Broken texture batching - fixed along with misc LibVLC plugin ↵Callum Linden
additions (status, titles, looping)