Commit Graph

397 Commits (9edad026f4494de1a6f02ecc3f477faa27a361ef)

Author SHA1 Message Date
Ansariel a154630ecd Merge 494-maint-wassail 2019-11-19 21:51:54 +01:00
Ansariel 3bc189bda7 Merge Firestorm LGPL 2019-11-19 20:28:09 +01:00
AndreyL ProductEngine 84f3b2865f Merged in lindenlab/viewer-release 2019-11-12 00:39:07 +02:00
Ansariel 6e340961c0 Merge viewer-neko 2019-10-30 18:05:01 +01:00
andreykproductengine 1b4d5492c6 SL-11727 Fix build warnings 2019-10-23 16:37:15 +03:00
Ansariel d79b79fbe2 Merge viewer-ordered-shutdown 2019-10-19 03:16:10 +02:00
andreykproductengine 37eb735ba7 Merged in lindenlab/viewer-release 2019-09-10 20:30:25 +03:00
Ansariel daa60fdb2c Merge viewer-neko 2019-08-13 20:32:40 +02:00
Nat Goodspeed 98be6e141c DRTVWR-493: Streamline LLParamSingleton, LLLockedSingleton.
Simplify LLSingleton::SingletonLifetimeManager to SingletonInitializer: that
struct has not been responsible for deletion ever since LLSingletonBase
acquired dependency-ordered deleteAll().

Move SingletonData::mInitState changes from SingletonLifetimeManager to
constructSingleton() method. Similarly, constructSingleton() now sets
SingletonData::mInstance instead of making its caller store the pointer.

Add variadic arguments to LLSingleton::constructSingleton() so we can reuse it
for LLParamSingleton.

Add finishInitializing() method to encapsulate logic reused for
getInstance()'s INITIALIZING and DELETED cases.

Make LLParamSingleton a subclass of LLSingleton, just as LLLockedSingleton is
a subclass of LLParamSingleton. Make LLParamSingleton a friend of LLSingleton,
so it can access private members of LLSingleton without also granting access
to any DERIVED_CLASS subclass. This eliminates the need for protected
getInitState().

LLParamSingleton::initParamSingleton() reuses LLSingleton::constructSingleton()
and finishInitializing(). Its getInstance() method completely replaces
LLSingleton::getInstance(): in most EInitStates, LLParamSingleton::getInstance()
is an error.

Use a std::mutex to serialize calls to LLParamSingleton::initParamSingleton()
and getInstance(). While LLSingleton::getInstance() relies on the "initialized
exactly once" guarantee for block-scope static declarations, LLParamSingleton
cannot rely on the same mechanism.

LLLockedSingleton is now a very succinct subclass of LLParamSingleton -- they
have very similar functionality.

Giving the LLSINGLETON() macro variadic arguments eliminates the need for a
separate LLPARAMSINGLETON() macro, while continuing to support existing usage.
2019-08-12 09:44:56 -04:00
andreykproductengine 55983b9abd SL-10908 One more safeguard 2019-08-05 20:52:18 +03:00
andreykproductengine 17fae30f72 DRTVWR-493 LLImage to LLParamSingleton 2019-07-25 15:17:11 +03:00
andreykproductengine ce380a4e4f SL-11138 Bitmaps format support bug 2019-05-15 19:28:17 +03:00
andreykproductengine 26fae750ba SL-10291 Replace apr_mutex with standard C++11 functionality 2019-01-14 22:04:44 +02:00
andreykproductengine e8b2b9109d SL-11138 Bitmaps format support bug 2019-05-15 19:28:17 +03:00
Beq ae6015ac3e Unreachable code introduced by addition of exceptions to out of memory handling 2018-10-03 10:13:00 +01:00
Ansariel cb20bc0425 Merge viewer-neko 2018-08-01 01:20:01 +02:00
andreykproductengine d406a086ba MAINT-8923 Better allocation failure handling 2018-07-27 19:42:08 +03:00
andreykproductengine e24d4c9f4d MAINT-8923 Better allocation failure handling, createGLTexture crashes 2018-07-26 20:06:26 +03:00
Ansariel 31a1ba1701 Merge Firestorm LGPL 2018-05-08 18:31:13 +02:00
Nicky 7cc408a5cd Merge. 2018-04-10 12:33:45 +02:00
Ansariel 6a8272cfa8 Merge Firestorm LGPL 2018-04-07 11:54:06 +02:00
Nicky ef20e3f523 Replace ARP Mutex and Condition with std::mutx and std::conditional_variable 2018-04-05 12:02:12 +02:00
Nicky 13806cb616 Rephrase the if expression to make it more clear, this is just for you GCC ... 2018-03-26 19:53:05 +02:00
Ansariel 25350b9422 Merge viewer-neko 2018-01-30 15:39:28 +01:00
Andrey Kleshchev 6e445e82e2 MAINT-8091 Removed deprecated and unused private memory pooling 2018-01-30 14:03:26 +00:00
Ansariel 76b8ec9cd9 Remove orphaned helper method 2018-01-17 13:42:59 +01:00
Ansariel 0b6176dea9 Merge Firestorm LGPL 2018-01-25 21:57:38 +01:00
Ansariel f727126c95 Merge viewer-bear 2018-01-25 21:55:38 +01:00
Ansariel 4b10c7fc14 Remove orphaned helper method 2018-01-17 13:42:59 +01:00
Ansariel f6e3684f6e Merge Firestorm LGPL 2018-01-17 12:07:54 +01:00
AndreyL ProductEngine 57a99273ed Merged in lindenlab/viewer-release 2018-01-17 03:20:12 +02:00
Ansariel 98569f84a2 Merge viewer-neko 2018-01-13 19:11:09 +01:00
andreykproductengine 6ac2b2bb4f MAINT-8167 Fixed uploading JPEG image from Unicode directory fails 2018-01-10 18:51:20 +02:00
andreykproductengine 3cf0d2b635 MAINT-8167 Fixed uploading JPEG image from Unicode directory fails 2018-01-10 18:51:20 +02:00
Ansariel 46291642ec Merge Firestorm LGPL 2017-12-07 20:23:29 +01:00
andreykproductengine 083b93d2f9 MAINT-2124 Texture allocation issues 2017-12-05 17:54:17 +02:00
Ansariel a5cb8fdbee Sync LLImageJ2C for upcoming fix with LL 2017-12-06 16:57:08 +01:00
andreykproductengine 34d3b49d1f MAINT-2124 Texture allocation issues 2017-12-05 17:54:17 +02:00
Ansariel e7715f7a31 Merge Firestorm LGPL 2017-11-30 20:33:07 +01:00
Nat Goodspeed e3a2c5e321 DRTVWR-418: Merge from latest viewer-release 2017-11-29 14:47:09 -05:00
andreykproductengine e5ef898728 MAINT-8028 Fixed memory leak in allocateDataSize() 2017-11-27 15:02:33 +02:00
andreykproductengine 01c7af846f MAINT-8028 Fixed memory leak in allocateDataSize() 2017-11-27 15:02:33 +02:00
Ansariel 960f20e437 Merge Firestorm LGPL 2017-10-28 20:20:14 +02:00
Ansariel 8084ccff3a MAINT-7633 Crash fix 2017-10-27 23:41:08 +02:00
andreykproductengine d7732280a9 Merged from viewer-lynx 2017-10-27 21:00:18 +03:00
Nat Goodspeed 0c7bc67814 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2017-10-11 14:35:49 -04:00
Ansariel 06db7c626f Merge Firestorm LGPL 2017-10-11 17:58:16 +02:00
Ansariel 615336a4d4 Merge viewer-neko 2017-09-07 21:49:12 +02:00
Ansariel c47b8c27ba Merge Firestorm LGPL 2017-08-23 17:53:48 +02:00
Oz Linden 01e0b78c59 merge changes for DRTVWR-439 2017-08-16 15:43:58 -04:00