2005-11-02 19:04:51 +03:00
|
|
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-05-21 15:12:37 +04:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
1999-04-13 23:03:45 +04:00
|
|
|
|
|
|
|
|
|
|
|
/* We need this because Solaris' version of qsort is broken and
|
|
|
|
* causes array bounds reads.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef nsQuickSort_h___
|
|
|
|
#define nsQuickSort_h___
|
|
|
|
|
2005-11-02 23:38:21 +03:00
|
|
|
#include "nscore.h"
|
|
|
|
|
2012-10-01 06:10:22 +04:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
1999-04-13 23:03:45 +04:00
|
|
|
|
2005-11-02 19:04:50 +03:00
|
|
|
/**
|
|
|
|
* Parameters:
|
|
|
|
* 1. the array to sort
|
|
|
|
* 2. the number of elements in the array
|
2005-11-02 19:05:12 +03:00
|
|
|
* 3. the size of each array element
|
2005-11-02 19:04:50 +03:00
|
|
|
* 4. comparison function taking two elements and parameter #5 and
|
|
|
|
* returning an integer:
|
|
|
|
* + less than zero if the first element should be before the second
|
|
|
|
* + 0 if the order of the elements does not matter
|
|
|
|
* + greater than zero if the second element should be before the first
|
|
|
|
* 5. extra data to pass to comparison function
|
|
|
|
*/
|
2006-04-19 20:29:31 +04:00
|
|
|
NS_COM_GLUE void NS_QuickSort(void *, unsigned int, unsigned int,
|
2005-11-02 23:38:21 +03:00
|
|
|
int (*)(const void *, const void *, void *),
|
|
|
|
void *);
|
1999-04-13 23:03:45 +04:00
|
|
|
|
2012-10-01 06:10:22 +04:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
1999-04-13 23:03:45 +04:00
|
|
|
|
|
|
|
#endif /* nsQuickSort_h___ */
|