Commit Graph

33474 Commits (7deca6951fb4991fcebb1e89aad8b851aa2bc883)

Author SHA1 Message Date
Nat Goodspeed 7deca6951f MAINT-5232: Finish 7724e79aaf62: remove LLGlobalEconomy::initSingleton() 2015-06-24 20:57:32 -04:00
Nat Goodspeed ccc55255c5 MAINT-5232: Make LLPounceable noncopyable.
Changing the queue-of-callables implementation to boost::signals2::signal,
which is noncopyable, means that LLPounceable itself should be noncopyable.
2015-05-29 16:37:15 -04:00
Nat Goodspeed a9650ba222 MAINT-5232: Per Vir review, use Boost.Signals2 for LLPounceable.
Vir points out that "queue of callables" is pretty much exactly what a signal
does.
Add unit tests to verify chronological order, also queue reset when fired.
2015-05-29 15:10:54 -04:00
Nat Goodspeed df8da8c013 MAINT-5232: Stop documenting deprecated alternative LLSingleton usage. 2015-05-28 17:03:30 -04:00
Nat Goodspeed 6a82ff08d9 MAINT-5232: Normalize LLGlobalEconomy's use of LLSingleton.
LLSingleton currently presents two different usage styles: deriving MyClass
from LLSingleton<MyClass>, or just using a typedef. Turns out LLGlobalEconomy
is the ONLY class using the typedef style -- and the apologetic comment talks
about a potential maintenance that hasn't actually happened.
Derive LLGlobalEconomy from LLSingleton<LLGlobalEconomy>, like everyone else.
2015-05-28 16:52:09 -04:00
Nat Goodspeed d15ec90bc9 MAINT-5232: Provide better commentation for llinitdestroyclass.h. 2015-05-28 11:57:46 -04:00
Nat Goodspeed 9f962c03bf MAINT-5232: Extract LLInitClass, LLDestroyClass from llui/llui.h
to a new llcommon/llinitdestroyclass.h.
This mechanism is so general -- but has so many related moving parts -- that
(a) it deserves to be in a header file all its own, instead of conflated with
llui.h, and (b) it should be in llcommon where anyone can use it. It has no
dependencies whatsoever on llui or anything viewer-specific.
In this very changeset we changed one #include "llui.h" whose comment admits
that it was only dragged in for LLDestroyClass.
2015-05-27 16:41:10 -04:00
Nat Goodspeed 3fc39776dd MAINT-5232: Remove dubious polling in LLMuteList::getInstance().
The LLMuteList singleton instance might be requested before gMessageSystem is
constructed. LLMuteList wants to register a couple gMessageSystem callbacks.
Since gMessageSystem is not (yet) itself an LLSingleton, LLMuteList's
constructor can't just call it into existence. Until now, LLMuteList overrode
LLSingleton's getInstance() method: every time getInstance() was called, the
subclass override method would check whether gMessageSystem had been
initialized, and if so, register its callbacks before forwarding the call to
the base-class LLSingleton::getInstance() method.
Change to use LLPounceable::callWhenReady() instead.
This is the reason gMessageSystem was made an LLPounceable.
2015-05-27 14:38:51 -04:00
Nat Goodspeed df55db4aa0 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2015-05-26 20:15:42 -04:00
Nat Goodspeed 234ea52850 MAINT-5232: Having an IF macro collides with helper libraries.
Changing to IFF in the lex/yacc sources (which are supposedly deprecated on
the viewer side anyway!) unbreaks Mac builds.
2015-05-26 20:15:19 -04:00
Oz Linden f3c58f765c increment viewer version to 3.7.30 2015-05-26 16:36:45 -04:00
Oz Linden f34681220c Added tag 3.7.29-release for changeset d07f76c5b986 2015-05-26 16:36:45 -04:00
Nat Goodspeed 833579b14b MAINT-5232: Convert gMessageSystem != NULL to simple bool test.
Now that gMessageSystem is an LLPounceable, we would either have to define
comparisons to LLPounceable's held type or static_cast<LLMessageSystem*> to
literally compare to NULL. But since we already define operator bool(), that's
the easy (and idiomatic) fix.
2015-05-23 13:34:34 -04:00
Nat Goodspeed 4302637464 MAINT-5232: Make gMessageSystem an LLPounceable<LLMessageSystem*>.
This will permit other subsystems to use gMessageSystem.callWhenReady() to (e.g.)
register callbacks as soon as gMessageSystem is fully initialized.
2015-05-23 12:41:47 -04:00
Nat Goodspeed df3da84624 MAINT-5232: Add LLPounceable template for delayed registrations.
LLMuteList, an LLSingleton, overrides its getInstance() method to intercept
control every time a consumer wants LLMuteList. This "polling" is to notice
when gMessageSystem becomes non-NULL, and register a couple callbacks on it.
Unfortunately there are a couple ways to request the LLMuteList instance
without specifically calling the subclass getInstance(), which would bypass
that logic. Moreover, the polling feels a bit dubious to start with.
LLPounceable<T*> presents an idiom in which you can callWhenReady(callable) on
the LLPounceable instance. If the T* is already non-NULL, it calls the
callable immediately; otherwise it enqueues it for when the T* is set
non-NULL. (This lets you "pounce" on the T* as soon as it becomes available,
hence the name.) So if gMessageSystem were an LLPounceable<LLMessageSystem*>,
LLMuteList's constructor could simply call gMessageSystem.callWhenReady() and
relax: the callbacks would be registered either on LLMuteList construction or
LLMessageSystem initialization, whichever comes later.
LLPounceable comes with its very own set of unit tests. However, as of this
commit it is not yet used in actual viewer code.
2015-05-22 22:05:16 -04:00
Nat Goodspeed 331e932857 MAINT-5232: Clean up some dubious LLSingleton methods.
Remove evil getIfExists() method, used by no one.
Remove evil destroyed() method, used in exactly three places -- one of which
is a test. Replace with equally evil instanceExists() method, which is used
EVERYWHERE -- sigh.
2015-05-22 14:02:24 -04:00
Nat Goodspeed 107b9bcb70 MAINT-5232: Introduce SUBSYSTEM_CLEANUP() macro
and use it for existing LLSomeClass::cleanupClass() calls.
This logs the fact of making the call, as well as making it.
2015-05-20 10:56:09 -04:00
Brad Payne (Vir Linden) 3ae8a821c3 merge 2015-04-24 08:55:20 -04:00
Oz Linden fde0868231 increment viewer version to 3.7.29 2015-04-23 16:18:44 -04:00
Oz Linden 5712f7f56b Added tag 3.7.28-release for changeset 566874eb5ab2 2015-04-23 16:17:37 -04:00
Brad Payne (Vir Linden) 39b17157f9 Fix for bad syntax that displeased linux more than windows. 2015-04-16 15:45:33 -04:00
Brad Payne (Vir Linden) 326b9d111e MAINT-5082 WIP, MAINT-5083 WIP - consolidate COF link creation calls during mass add of wearables/objects 2015-04-16 15:28:35 -04:00
Oz Linden 9dbea04a50 remove dead member variables 2015-04-14 17:14:34 -04:00
Brad Payne (Vir Linden) c6af736035 MAINT-5082 WIP, MAINT-5083 WIP - batch up wear/add/take off/detach requests in inventory panel the same way we do now in appearance tab 2015-04-14 15:46:49 -04:00
andreykproductengine 11ed48abd1 MAINT-5097 FIXED crash in LLFloaterPay::onGive 2015-04-14 21:21:29 +03:00
Oz Linden d6d13e20f3 remove disabled code 2015-04-14 14:46:32 -04:00
Oz Linden 153d571c5c merge changes for MAINT-5090 2015-04-14 14:42:41 -04:00
Oz Linden a49e11efd9 remove check-viewer-xml (moved to the viewer-test-tools repo) 2015-04-14 10:44:16 -04:00
Mnikolenko ProductEngine 8be5c8eade MAINT-5090 Remove disabling HTTP Inventory from Viewer 2015-04-14 14:10:38 +03:00
Oz Linden 034fb74d05 merge changes for STORM-2113 2015-04-14 05:39:36 -04:00
Oz Linden bef5a95caf minimal changes to compile on Xcode 6.2 2015-04-14 05:00:58 -04:00
Brad Payne (Vir Linden) 32940ee90b merge 2015-04-13 17:19:27 -04:00
Oz Linden a8ef252571 merge changes for 3.7.27-release 2015-04-13 16:23:36 -04:00
Oz Linden a647b8f1cb increment viewer version to 3.7.28 2015-04-13 16:19:04 -04:00
Oz Linden db8d79c90f Added tag 3.7.27-release for changeset afd8d4756e8e 2015-04-13 16:19:03 -04:00
Cinder 5a282abe18 STORM-2113 - uri parsing cleanup and fixes 2015-04-11 15:23:06 -06:00
Oz Linden 5c6cf3e7fb restore the ll[io]fstream because we need them as wrappers on Windows for wide char paths; on other platforms they are now just typedefs to the std classes 2015-04-10 11:02:37 -04:00
Oz Linden 6b9b4c91d1 Detect running under cygwin and fail gracefully 2015-04-09 11:12:47 -04:00
Oz Linden 1abc87139b fix validity errors in settings files 2015-04-08 13:00:35 -04:00
Oz Linden 8b42c7898e replace llifstream and llofstream with std::ifstream and std::ofstream respectively 2015-04-07 17:59:28 -04:00
Oz Linden 3a57b18896 convert llifstream and llofstream to std::ifstream and std::ofstream respectively 2015-04-07 17:28:05 -04:00
MNikolenko ProductEngine dbb304ab20 MAINT-5023 FIXED URIparser crash in LLUrlEntryBase::urlToLabelWithGreyQuery 2015-04-07 20:58:48 +03:00
Brad Payne (Vir Linden) cddfcda167 appearance utility source updated 2015-04-07 13:04:03 -04:00
Brad Payne (Vir Linden) 1a54bc44bb appearance utility source updated 2015-04-07 13:03:12 -04:00
Brad Payne (Vir Linden) c641fb08ae merge 2015-04-03 09:47:57 -04:00
Oz Linden 66bc510786 detect xml errors in parsing xml files and remove those files 2015-04-02 21:43:34 -04:00
Oz Linden 4aafdfd1c6 add catch for possible exception in llsechandler_basic destructor (crash on exit) 2015-04-02 21:21:21 -04:00
Oz Linden e19809cb91 improve logging of machine id generation 2015-04-02 21:12:43 -04:00
Oz Linden 6324e58000 improve logging of errors in default permissions cap 2015-04-02 21:11:22 -04:00
Oz Linden 136a925536 add script to check xml files written by the viewer 2015-04-02 16:01:17 -04:00