mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r4892) - Fix [FS#162]: SEGV when sorting an empty server list. (glx)
This commit is contained in:
parent
3abc59ebfa
commit
d02f2ec1e6
@ -151,12 +151,6 @@ static int CDECL NGameAllowedSorter(const void *a, const void *b)
|
|||||||
return (_internal_sort_order & 1) ? -r : r;
|
return (_internal_sort_order & 1) ? -r : r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NGameNameSortFunction* const _ngame_sorter[] = {
|
|
||||||
&NGameNameSorter,
|
|
||||||
&NGameClientSorter,
|
|
||||||
&NGameAllowedSorter
|
|
||||||
};
|
|
||||||
|
|
||||||
/** (Re)build the network game list as its amount has changed because
|
/** (Re)build the network game list as its amount has changed because
|
||||||
* an item has been added or deleted for example
|
* an item has been added or deleted for example
|
||||||
* @param ngl list_d struct that contains all necessary information for sorting */
|
* @param ngl list_d struct that contains all necessary information for sorting */
|
||||||
@ -188,13 +182,20 @@ static void BuildNetworkGameList(network_ql_d *nqld)
|
|||||||
|
|
||||||
static void SortNetworkGameList(network_ql_d *nqld)
|
static void SortNetworkGameList(network_ql_d *nqld)
|
||||||
{
|
{
|
||||||
|
static NGameNameSortFunction* const ngame_sorter[] = {
|
||||||
|
&NGameNameSorter,
|
||||||
|
&NGameClientSorter,
|
||||||
|
&NGameAllowedSorter
|
||||||
|
};
|
||||||
|
|
||||||
NetworkGameList *item;
|
NetworkGameList *item;
|
||||||
uint i;
|
uint i;
|
||||||
|
|
||||||
if (!(nqld->l.flags & VL_RESORT)) return;
|
if (!(nqld->l.flags & VL_RESORT)) return;
|
||||||
|
if (nqld->l.list_length == 0) return;
|
||||||
|
|
||||||
_internal_sort_order = nqld->l.flags & VL_DESC;
|
_internal_sort_order = nqld->l.flags & VL_DESC;
|
||||||
qsort(nqld->sort_list, nqld->l.list_length, sizeof(nqld->sort_list[0]), _ngame_sorter[nqld->l.sort_type]);
|
qsort(nqld->sort_list, nqld->l.list_length, sizeof(nqld->sort_list[0]), ngame_sorter[nqld->l.sort_type]);
|
||||||
|
|
||||||
/* After sorting ngl->sort_list contains the sorted items. Put these back
|
/* After sorting ngl->sort_list contains the sorted items. Put these back
|
||||||
* into the original list. Basically nothing has changed, we are only
|
* into the original list. Basically nothing has changed, we are only
|
||||||
|
Loading…
Reference in New Issue
Block a user