I may be a pedant, but it's not correct to use 'the most' when referring to the greater of only two things. Plus, I don't really think the bad grammar adds any 'character' here.
apply_to=variation/type should have no effect when object were reapplied for example at unit creation. This is also the 1.12 behaviour. This also prevents infinite recursion.
Currently t_string isn't threadsafe, of one thread executes a 't_string
a("a")' and another threads does 't_string b("b")' the progamm might
crash even of those object are completeley unrelated at first glance.
This commit tried to fix this by wrapping the acces to the shared
hash_map object in mutex locks, another attempt to fix this problem
might be to remove the shared hash_map implementation of t_string
completeley. Unfortunateley i don't know why it was implemented this
way in the first place so i don't know which disadvantages removing it
would have.
currently it can happen that the game crashes during loadingscreen. The
reason is that loading scenn uses multiple threads, but t_string has a a
thread unsafe implementation that can cause crashes even when 2 threads
create 2 completeleey unrelated t_string objects.
This commit tries to fix this problem by removing all constructions of
t_string objects in the loadingscreen class to its constructor. Copy
constructors of t_string are still called, but afaik these doesn't cause
crashes liek this because they don't add new values in the t_string
hash_index registry,
The GUI2 combobox widget code is linked into a separate .a library that
does not include one of its dependencies, gui2::tdrop_down_list. This
causes link order issues and renders the wesnoth and test targets
unlinkable with GCC 5.3.1 and binutils 2.26 at least.
This means that whitespace in the following positions is now ignored:
- At the beginning of a line
- Preceding the = or } character
- Following the { character
All other whitespace is still significant.