summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2017-03-30DRTVWR-418: Xcode 8.3 complains about LLSafeHandle<T> implementation.Nat Goodspeed
The previous LLSafeHandle<T> implementation declares a static data member of the template class but provides no (generic) definition, relying on particular specializations to provide the definition. The data member is a function pointer, which is called in one of the methods to produce a pointer to a "null" T instance: that is, a dummy instance to be dereferenced in case the wrapped T* is null. Xcode 8.3's version of clang is bothered by the call, in a generic method, through this (usually) uninitialized pointer. It happens that the only specializations of LLSafeHandle do both provide definitions. I don't know whether that's formally valid C++03 or not; but I agree with the compiler: I don't like it. Instead of declaring a public static function pointer which each specialization is required to define, add a protected static method to the template class. This protected static method simply returns a pointer to a function-static T instance. This is functionally similar to a static LLPointer<T> set on demand (as in the two specializations), including lazy instantiation. Unlike the previous implementation, this approach prohibits a given specialization from customizing the "null" instance function. Although there exist reasonable ways to support that (e.g. a related traits template), I decided not to complicate the LLSafeHandle implementation to make it more generally useful. I don't really approve of LLSafeHandle, and don't want to see it proliferate. It's not clear that unconditionally dereferencing LLSafeHandle<T> is in any way better than conditionally dereferencing LLPointer<T>. It doesn't even skip the runtime conditional test; it simply obscures it. (There exist hints in the code that at one time it might have immediately replaced any wrapped null pointer value with the pointer to the "null" instance, obviating the test at dereference time, but this is not the current functionality. Perhaps it was only ever wishful thinking.) Remove the corresponding functions and static LLPointers from the two classes that use LLSafeHandle.
2017-03-16merge CEF update and fixes from callumOz Linden
2017-03-15Next part of the 'SL-641 Update CEF -> cef-bin -> Dullahan -> ↵callum@lindenlab.com
p64_3p-Dullahan -> media_plugin_cef.cpp to current latest version' puzzle - fix @rpath/@executable paths for macOS
2017-03-14Fixed for MAINT-7201, MAINT-7202, MAINT-7203 (viewer-embeddedd browser ↵Callum Prentice
scheme handler was broken)
2017-03-14SL-641 - Update CEF -> cef-bin -> Dullahan -> p64_3p-Dullahan -> ↵Callum Prentice
media_plugin_cef.cpp to latest versionPull in p64_3p-dullahan that has the cef 2897/chrome 57
2017-03-14Tweak CEF plugin version to include Chrome equivalentCallum Prentice
2017-03-13Automated merge with ssh://bitbucket.org/lindenlab/viewer64Nat Goodspeed
2017-03-13Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-03-13Automated merge with tip of viewer-releaseCallum Prentice
2017-03-13increment viewer version to 5.0.4Oz Linden
2017-03-13Automated merge with ssh://bitbucket.org/lindenlab/viewer64-maint-7177Nat Goodspeed
2017-03-13DRTVWR-418: Make LLEventPumps an LLHandleProvider for LLEventPump.Nat Goodspeed
LLEventPump's destructor was using LLEventPumps::instance() to unregister the LLEventPump instance from LLEventPumps. Evidently, though, there are lingering LLEventPump instances that persist even after the LLSingletonBase::deleteAll() call destroys the LLEventPumps LLSingleton instance. These were resurrecting LLEventPumps -- pointlessly, since a newly-resurrected LLEventPumps instance can have no knowledge of the LLEventPump instance! Unregistering is unnecessary! What we want is a reference we can bind into each LLEventPump instance that allows us to safely test whether the LLEventPumps instance still exists. LLHandle is exactly that. Make LLEventPumps an LLHandleProvider and bind its LLHandle in each LLEventPump's constructor; then the destructor can unregister only when LLEventPumps still exists.
2017-03-13DRTVWR-418: #include "llrefcount.h" : LLTombStone uses LLRefCount.Nat Goodspeed
Apparently we've been getting away so far without this essential #include only by "leakage" from other #includes in existing consumers. <eyeroll/>
2017-03-13DRTVWR-418: Use LLTempBoundListener to manage "mainloop" listener.Nat Goodspeed
LLUpdaterServiceImpl binds its onMainLoop() listener method to the "mainloop" event so it can wake up periodically to recheck for updates. (Suggests maybe a smarter conventional callback-on-timer facility with a central queue, instead of every interested party intercepting *every* frame...) ~LLUpdaterServiceImpl() was calling LLEventPumps::instance() only to disconnect that listener, which was resurrecting the deleted LLEventPumps instance. Instead store an LLTempBoundListener in LLUpdaterServiceImpl, the conventional way to implicitly disconnect on destroy. Use its disconnect() method when explicit disconnection is desired.
2017-03-13SL-644 Add guard to mCount in LLRender.cppCallum Prentice
2017-03-13DRTVWR-418: Ignore logging that requires resurrecting singletons.Nat Goodspeed
The logging subsystem depends on two different LLSingletons for some reason. It turns out to be very difficult to completely avoid executing any logging calls after the LLSingletonBase::deleteAll(), but we really don't want to resurrect those LLSingletons so late in the run for a couple stragglers. Introduce LLSingleton::wasDeleted() query method, and use it in logging subsystem to simply bypass last-millisecond logging requests.
2017-03-13DRTVWR-418: Tweak shutdown sequence to avoid resurrecting singletons.Nat Goodspeed
The LLSingletonBase::deleteAll() call late in LLAppViewer::cleanup() deletes the LLSingleton(s) used by the logging machinery, among other things. Attempting further logging after that call (such as our cheery "Goodbye!") has the unfortunate effect of attempting to resurrect the deleted LLSingleton(s). Move "Goodbye!" to just *before* the call. Also, given that call, the manual references to a couple specific LLSingletons in ~LLAppViewer() are (a) unnecessary and (b) cause attempted resurrection. Eliminate both.
2017-03-12MAINT-6998 [Project Alex Ivy] 64bit viewer installs to Program Files (x86) ↵Callum Prentice
by default. (Update2: evidently the registry set call is needed on un.init() too
2017-03-11MAINT-6998 [Project Alex Ivy] 64bit viewer installs to Program Files (x86) ↵Callum Prentice
by default. (Update: call to select registry needs to be inside a function)
2017-03-11Update: (thanks Drake) MAINT-6998 [Project Alex Ivy] 64bit viewer installs ↵callum@lindenlab.com
to Program Files (x86) by default. Added option to engage 32 or 64 bit registry
2017-03-10MAINT-6998 [Project Alex Ivy] 64bit viewer installs to Program Files (x86) ↵Callum Prentice
by default.
2017-03-10Fix for MAINT-7047 No information about 32bit or 64bit version of 'Project ↵Callum Prentice
Alex Ivy' viewer in non-English locales
2017-03-09Second part of fix for SL-646 Fix 'LINK : warning LNK4075: ignoring ↵Callum Prentice
/INCREMENTAL due to '/LTCG' specification' in LibVLC, JPEGLIB etc.
2017-03-08Second Life SL-643 viewer_manifest.py still tried to copy the CEF file ↵callum@lindenlab.com
wow_helper.exe but it's no longer present
2017-03-08merge changes for MAINT-7156Oz Linden
2017-03-06Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-03-06increment viewer version to 5.0.3Oz Linden
2017-03-06Automated merge with tip of lindenlab/viewer64callum@lindenlab.com
2017-03-03Remove OSX headers added for testing purposes and also some unused varsCallum Prentice
2017-03-03First pass at osx/macos keyboard events - simple case like google homepage ↵callum@lindenlab.com
is working
2017-03-01Fix up slight change to Dullahan interface where we call out the platform ↵callum@lindenlab.com
for native keyboard injection to match OSX version
2017-03-01MAINT-7161 Crash in LLViewerInventoryItemandreykproductengine
2017-02-24First round of changes to make the macOS 64 build workcallum@lindenlab.com
2017-02-24MAINT-7156: do not use the server-supplied agent email when sending a ↵Oz Linden
postcard because it is obfuscated and not needed
2017-02-23Whoopps. Apologies for leaving Windows debug spam in code :(callum@lindenlab.com
2017-02-23Update media plugin CEF code to match new Dullahancallum@lindenlab.com
2017-02-22Use new version info from CEF plugin to display in About boxCallum Prentice
2017-02-22reenable support for copy/cut/paste to/from a web pageCallum Prentice
2017-02-22correct merge error in BuildVersion.cmakeOz Linden
2017-02-22use AUTOBUILD_BUILD_ID value for revision if available (requires autobuild ↵Oz Linden
1.1.4)
2017-02-21First round of changes to replace LLCEFLib with Dullahan. Mostly Windows ↵Callum Prentice
changes in this batch since I'm working on Windows box but some speculative macOS ones too although they are quite untested
2017-02-17Automated merge with head of lindenlab/callum_viewer64callum@lindenlab.com
2017-02-15improve dependency declarations for packages-info and other settings filesOz Linden
2017-02-15MAINT-7130: suppress stdout from run_build_tests byOz Linden
converting to logging so that stdout from its command can be captured cleanly Make the default be to not print anything
2017-02-15convert run_build_tests to use argparse rather than optparseOz Linden
2017-02-13Automated merge with lindenlab/viewer64callum@lindenlab.com
2017-02-13DRTVWR-418: Fix syntax for previous test skip.Nat Goodspeed
2017-02-13Automated merge with lindenlab/viewer64callum@lindenlab.com
2017-02-13DRTVWR-418: Reluctantly skip llcorehttp 503-with-retry test on W64.Nat Goodspeed
2017-02-13Automated merge with head of callum_linden/viewer64-xcode8callum@lindenlab.com